5.1系统硬件内核

uname -a     # 显示系统全部信息

-a

all 全部信息

-m

machine  处理器架构 如x86_64

-r

release 系统内核版本 如4.4.0-87-generic

-n

hostname 主机名 在/etc/hosts可以查看 

-s

sysname 操作系统版本名称

-v

version 操作系统版本号

UOS 查看服务器是否安装samba uos查看cpu命令_linux

显示内核版本有两种方式:uname -r 或者 cat /proc/version

5.2 cpu与进程信息

逻辑cpu数量 =  物理cpu数量 X cpu核数  如果开启了HT超线程技术,则 x2

cat /proc/cpuinfo  查看cpu信息

processor   :  逻辑CPU编号,编号从0开始计算,总数就是逻辑cpu的个数
physical id :  物理CPU编号,总数就是物理cpu的个数
cpu cores   :  物理CPU的核数 ,编号从0开始计算
ps  查看进程信息  是process status的简写 

-a   列出所有进程
-u   以用户主的进程状态
 x   与a参数一起使用,列出完整信息
-e   列出所有进程等同于-a
-f    列出更为完整的输出

ps -ef               #  显示所有进程信息,连带命令行
ps -ef |grep mysql   #  查找特定进程,ps与grep常用组合用法
ps -aux              #  列出目前所有的正在内存当中的程序
ps -ef | grep mysql  #  模糊匹配   
ps -C mysql          #  精确匹配

进程五种状态

  • D :不可中断 uninterruptible sleep (usually IO)
  • R :该程序目前正在运作,或者是可被运作
  • S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
  • T :该程序目前正在侦测或者是停止了
  • Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

5.3 内存

free     # 查看系统内存使用情况,包括物理内存、交换内存

free            查看内存信息

free -h -s 3    # 每隔3秒输出一次内存信息
-m              # 以MB为单位换算 1024KB = 1MB
-h              # 以GB为单位换算 1024MB = 1GB

buffer和cache区别:

buffer:缓冲区      一个磁盘块对应一个缓冲区,buffer是磁盘块调入到内存中的表示
cache :页高速缓存  磁盘块通过缓冲区buffer把文件存入页高速缓存

区别:都是为了提高磁盘读写效率,页高速缓存包含缓冲区,缓冲区是动作,页高速缓存是结果 
缓存命中:当内核要读一个文件(比如 /etc/hosts)时,它会先检查这个文件的数据是不是已经在页高速缓存中了。
如果在,就放弃访问磁盘,直接从内存中读取。这个行为称为缓存命中。如果数据不在缓存中,就是未命中缓存,此时内核就要调度块I/O操作从磁盘去读取数据。然后内核将读来的数据放入页高速缓存中。这种缓存的目标是文件系统可以识别的文件(比如 /etc/hosts)。

5.4 查看网络

(1)查看linux网络接口的流量 

我们平时经常用的很多查看网卡实时流量的命令,都是通过读取该目录下的实时流量,并通过简单计算得到的。proc文件系统是动态从系统内核读出所需信息并提交的。/proc文件系统中包含了很多目录,其中/proc/net/dev 保存了网络适配器及统计信息

网卡流量信息

cat /proc/net/dev     # 查看网卡流量信息
Inter-| Receive            | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:137052296 108029 0 0 0  0   0   0 137052296 108029 0 0 0  0  0   0
eth0:13661574714188 31346790620 0 0 0  0   0   0 5097461049535 27671144304 0 0 0  0  0   0

最左边的表示接口的名字,Receive表示收包,Transmit表示发送包;

  bytes表示收发的字节数;
  packets表示收发正确的包量;
  errs表示收发错误的包量;
  drop表示收发丢弃的包量;


网卡信息

ipconfig -a

etho 是网卡接口
lo   是网卡回环接口

查看linux网络流量的几种方式https://www.jb51.net/article/112965.htm

配置或显示linux网络接口信息

(2)ifconfig命令

用于配置网卡IP地址等网络参数或显示当前网络的接口状态,其类似于Windows下的ipconfig命令,这两个命令很容易混淆,读者需要区分一下。此外,ifconfig命令在配置网卡信息时必须以root用户的身份来执行。如果系统中没有ifconfig命令,那就需要安装一下,安装命令为yum-y install net-tools。

ifconfig [interface] [option]

使用ifconfig命令配置网卡信息仅会临时生效,重启网络或服务器配置就会失效。

  • -a    显示所有的网络接口信息,包括活动的和非活动的
  • up    激活指定的网络接口施
  • down    关闭指定的网络接口
  • hw    设置网络接口的物理地址(MAC地址)
[root@cs6 ~]# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04  
          inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:15448 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7338 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20840158 (19.8 MiB) TX bytes:569624 (556.2 KiB)
 
eth1 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:0E  
          inet addr:172.16.1.100 Bcast:172.16.1.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8c:6a0e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b) TX bytes:828 (828.0 b)
 
lo Link encap:Local Loopback  
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:65536 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

下面以eth0的结果作进一步说明。

  • 第1行:显示连接类型为Ethernet(以太网),HWaddr表示硬件的MAC地址。
  • 第2行:依次显示网卡的IP地址(inet addr)、广播地址(Bcast)和子网掩码(Mask)。
  • 第3行:IPv6地址的配置信息,由于没有使用IPv6地址,因此这里没有P地址显示。
  • 第4行:“UP”代表网卡的开启状态,“RUNNING”代表网卡上的网线处于连接状态,“MULTICAST”代表支持组播,“MTU:1500”表示最大传输单元为1500字节。
  • 第5、6行:显示了网卡接收、发送数据包的统计信息。
  • 第8行:显示了网卡接收、发送数据字节数的统计信息。

显示指定网卡的信息

[root@cs6 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04  
          inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:125 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:13325 (13.0 KiB) TX bytes:11435 (11.1 KiB)

启动/关闭指定网卡

ifup eth0   启动eth0网口
ifdown eth0 关闭eth0网口

ifconfig eth0 192.168.1.1 netmask 255.255.255.0      配置网卡的ip地址
ifconfig eth0 192.168.120.6                          配置网卡的IP地址
ifconfig eth0:0 10.0.0.101 netmask 255.255.255.0 up  为网卡配置别名
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE             修改网卡MAC地址的例子
[root@cs6 ~]# ifconfig eth1 down
[root@cs6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:8C:6A:04  
          inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe8c:6a04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:15562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7407 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20850219 (19.8 MiB) TX bytes:579268 (565.6 KiB)
 
lo Link encap:Local Loopback  
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:65536 Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:504 (504.0 b) TX bytes:504 (504.0 b)

在网卡重启或机器重启之后,用ifconfig命令配置的网卡信息就不存在了。要想将上述配置信息永远地存储在服务器里,需要修改网卡的配置文件。

网卡类型             网卡标识    对应的配置地址路径

第一个物理网卡        eth0        /etc/sysconfig/network-scripts/ifcfg-etho

第二个物理网卡        ethl         /etc/sysconfig/network-scripts/ifcfg-eth1

第一个物理网卡上的别名IP eth0:0     /etc/sysconfig/network-scripts/ifcfg-eth0:0

(3)route 显示网络路由信息

route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 配置路由

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface(网络接口)
0.0.0.0         192.168.233.2   0.0.0.0         UG    0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

网络路由:

  • 网络路由是计算机网络的重要组成部分,主要服务于网络间的连接,进行路由的选择等活动
  • 网络路由通过对信息进行过滤、转发等,把两个或更多的网络连接起来,从而在计算机间连接起有效的网络
  • 通过选择合适的路由路线,以最快的速度,将信息从一个网络层输送到另外一个网络层
  • 分类:有线网络路由、无线网络路由

路由器:就是个分线器。把一根单独的网线分成几个网线让更多的人同时使用网络。没有路由器你只能让一个人上网

(4)netstat查看端口信息

  • netstat -tan 显示了网络连接信息(tcp链路)
  • netstat -uan 显示网络连接信息(udp链路)
  • netstat -s 显示网络数据包统计信息(按照协议划分 ip协议、tcp协议、udp协议、icmp协议)
netstat -a  # 列出所有端口包括监听和未监听的
netstat -at # 列出所有 tcp 端口
netstat -au # 列出所有 udp 端口
netstat -l  # 列出所有处于监听状态的端口
netstat -lt # 列出所有处于监听状态的tcp端口
netstat -lu # 列出所有处于监听状态的udp端口

netstat -s  # 显示每个协议的统计信息
netstat -p  # 显示PID和进程名称

netstat -tpln | grep ssh # 查找处于监听状况的 ssh的端口信息

lsof -i:22   # 列出谁在使用某个端口(查看网络端口连接情况,以22号端口为例)

5.5 查看磁盘信息

df -h                #查看磁盘整体使用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df -h /data       #查看指定磁盘目录的使用情况

du -sh 文件名  #查看文件或目录大小

intellif@intellif:~$ df -h  # -h:以人类可读的方式显示
Filesystem                         Size  Used Avail Use% Mounted on
udev                                16G     0   16G   0% /dev
tmpfs                              3.2G  5.0M  3.2G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  117G   86G   25G  78% /
tmpfs                               16G     0   16G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                               16G     0   16G   0% /sys/fs/cgroup
/dev/sda2                          976M  148M  761M  17% /boot
/dev/sda1                          511M  6.7M  505M   2% /boot/efi
tmpfs                              3.2G     0  3.2G   0% /run/user/1000


intellif@intellif:~$ du -sh update2.6.5_2.7.1.tgz  # du -sh  文件名  用于查看文件大小
3.7G	update2.6.5_2.7.1.tgz

磁盘瓶颈分析

iostat 报告显示2个信息:cpu统计信息、磁盘统计信息

intellif@intellif:~$ iostat  
Linux 4.15.0-142-generic (intellif) 	06/02/2021 	_x86_64_	(12 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.18    0.00    2.87    0.14    0.00   91.81

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0             0.00         0.00         0.00          8          0
sda              64.13        29.79       542.78   59133233 1077285725
dm-0             94.69        29.79       582.49   59115877 1156094896

第一行cpu资源信息
CPU指标:对于多处理器系统,CPU值是所有处理器之间的全局平均值。且以下指标加起来和为1
%user: 用户级别(应用程序)执行时,CPU利用率。
%nice: 有用户优先级的在用户,CPU利用率。
%system: 系统内核执行时,CPU利用率。
%iowait: 系统有未完成的磁盘I/O请求期间,CPU空闲(等待IO,不干正活)的时间百分比。
%steal: 超卖 管理程序为另一个虚拟处机提供服务所花费的时间百分比。
%idle: 显示CPU空闲时间百分比。

第二行磁盘资源信息

 

date   #查看服务器时间
cal      #查看日历信息
cal 2014  #显示2014年的日历表
date 081512422014.30  #设置日期和时间8月15日12时42分2014年30秒 设置时间是临时的
clock -w   #永久保存当前时间 将时间修改保存到BIOS

5.6 软件包安装

 

rpm软件包

把源码封装在一个rpm包中,方便安装 。   rpm是redhat系列的常用的安装包

rpm fedora redhat及类似系统

rpm -ivh package_name.rpm   # 安装一个rpm包
rpm -e   package_name.rpm   # 删除一个rpm包 就是卸载一个包
rpm -qa                     # 显示所有已经安装的rpm包
rpm -qa |grep httpd         # 显示所有名称中包含httpd的rmp包
rpm --checking package.rpm  # 确认一个rpm包的完整性

yum安装工具

把常用的rpm软件包上传到网站集中管理,只需要通过软件名称,便会根据软件名称自动匹配对应的软件包,一并下载和安装

有转门的人员维护,并会存在多个版本,通过yum安装非常方便,只要有包名就可以安装

yum install package_name     # 安装一个rpm包
yum update package_name      # 更新一个rpm包
yum remove packsage_name     # 删除一个rpm包
yum list                     # 列出当前系统中所有安装的包
yum search package_name      # 在rpm仓库中搜索软件包

deb软件包

deb包是debian、ubuntu以及类似系统常用的安装包

dpkg -i package.deb  # 安装或更新一个deb包
dpkg -r package.deb  # 从系统删除或卸载一个deb包
dpkg -l              # 显示系统中所有已经安装的deb包
dpkg -l |grep httpd  # 显示所有名称中包含httpd的deb包

apt安装工具

与yun工具相对应,包常用的deb包上传到包仓库集中管理,通过报名即可安装,主要用于刀边debian和ubuntu操作系统

apt-get install package_name # 安装或更新一个deb包
apt-get upgrade              # 升级所有已经安装的deb包
apt-get remove package_name  # 从系统删除一个deb包