【第二章】(3)新手必须掌握的Linux命令之《系统状态检查命令》


关键词:网络、版本、负载、访问、历史、诊断

​       作为一名合格的运维人员,想要更快、更好地了解 Linux 服务器,必须具备快速查看 Linux系统运行状态的能力,本节概括有网卡网络系统内核系统负载内存使用情况当前启用终端数量历史登录记录命令执行记录以及救援诊断等相关命令的使用方法。

🧊1.ifconfig 命令

作用:用于获取网卡配置与网络状态等信息,英文全称"interface config"
语法:ifconfig [网络设备] [参数]

[root@linuxprobe ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.22.46.174  netmask 255.255.254.0  broadcast 172.22.47.255
        inet6 fe80::1c64:e79d:a17e:9b60  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:82:99:46  txqueuelen 1000  (Ethernet)
        RX packets 103468  bytes 91264650 (87.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 51780  bytes 4761170 (4.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 4059  bytes 3408923 (3.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4059  bytes 3408923 (3.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:a1:10:3f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

       使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称inet 参数后面的 IP 地址ether 参数后面的网卡物理地址(又称为 MAC 地址),以及 RX、TX 的接收数据包发送数据包的个数及累计流量(即下面加粗的信息内容):

🧊2.uname命令

作用:用于查看系统内核与系统版本等信息,英文全称为"unix name"
语法:uname [-a]

常用参数:

-a显示系统所有相关信息
-m显示计算机硬件架构
-n显示主机名称
-s显示内核名称
-r显示内核发行版本号
-v显示内核版本
-p显示主机处理器类型
-o显示操作系统名称
-i显示硬件平台

​       在使用 uname 命令时,一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。

[root@linuxprobe ~]# uname -a
Linux linuxprobe.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

       如果要查看当前系统版本的详细信息,则需要查看 redhat-release 文件,其命令以及相应的结果如下:

[root@linuxprobe ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)

🧊3.uptime命令

作用:用于查看系统的负载信息
语法:输入uptime回车即可

​       它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。

[root@linuxprobe ~]# uptime
 23:05:28 up  3:22,  1 user,  load average: 0.02, 0.04, 0.08

🧊4.free命令

作用:用于显示当前系统中内存的使用量信息
语法:free [-h]

       为了保证 Linux 系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。在使用 free 命令时,可以结合使用-h 参数以更人性化的方式输出当前内存的实时使用量信息

[root@linuxprobe ~]# free -h
           	       total        used        free      shared  buff/cache   available
Mem:          1.9Gi       1.2Gi       262Mi       5.0Mi       510Mi       612Mi
Swap:         2.0Gi       690Mi       1.3Gi

​       如果不使用-h(易读模式)查看内存使用量情况,则默认以 KB 为单位。这样一来,服务器如果有几百 GB 的内存,则换算下来就会是一大长串的数字,真不利于阅读。

🧊5.who命令

作用:用于查看当前登入主机用户终端信息
语法:输入who命令回车即可

       可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息;如果有远程用户,还会显示出来访者地IP地址。

[root@linuxprobe ~]# who
root     tty2         2023-02-15 17:58 (tty2)
root     pts/1        2023-02-15 18:17 (192.168.249.254)

image-20230215142647627

🧊6.last命令

作用:用于调取主机的被访问记录
语法:输入last命令回车即可

       Linux 系统会将每次的登录信息都记录到日志文件中,如果哪天想翻阅了,直接执行这条命令就行:

[root@linuxprobe ~]# last
root     tty2         tty2             Tue Dec 28 23:37    gone - no logout
reboot   system boot  4.18.0-80.el8.x8 Tue Dec 28 23:32   still running
root     tty2         tty2             Tue Dec 28 08:29 - down   (07:02)
reboot   system boot  4.18.0-80.el8.x8 Tue Dec 28 08:28 - 15:32  (07:03)
root     tty2         tty2             Mon Dec 27 08:11 - crash (1+00:17)
reboot   system boot  4.18.0-80.el8.x8 Mon Dec 27 08:11 - 15:32 (1+07:21)
root     tty2         tty2             Mon Dec 27 03:44 - down   (04:15)
reboot   system boot  4.18.0-80.el8.x8 Mon Dec 27 03:44 - 08:00  (04:16)
root     pts/1        172.20.23.28     Sun Dec 26 23:27 - 23:27  (00:00)
root     pts/0        172.20.23.28     Sun Dec 26 23:24 - 03:12  (03:47)
root     pts/1        172.20.23.28     Sun Dec 26 22:53 - 23:08  (00:14)
root     pts/2        172.20.23.28     Sun Dec 26 19:19 - 22:06  (02:46)
root     pts/1        192.168.43.253   Sun Dec 26 18:54 - 21:09  (02:14)
root     tty2         tty2             Sun Dec 26 18:50 - down   (08:21)
reboot   system boot  4.18.0-80.el8.x8 Sun Dec 26 18:50 - 03:12  (08:21)
root     tty2         tty2             Sun Dec 26 16:30 - down   (02:19)
reboot   system boot  4.18.0-80.el8.x8 Sun Dec 26 16:26 - 18:50  (02:23)
root     tty2         tty2             Thu Nov 25 02:47 - crash (31+13:38)
reboot   system boot  4.18.0-80.el8.x8 Thu Nov 25 02:46 - 18:50 (31+16:04)
root     tty2         tty2             Wed Nov 10 21:23 - crash (14+05:23)
reboot   system boot  4.18.0-80.el8.x8 Wed Nov 10 21:20 - 18:50 (45+21:29)

wtmp begins Wed Nov 10 21:20:42 2021

🧊7.ping命令

作用:用于测试主机之间网络连通性
语法:ping [参数] 主机地址

​       执行ping命令时,系统会使用ICMP向远端主机发出要求回应的信息,若链接远端主机的网络没有问题,远端主机会回应该信息。由此可见,ping命令可用于判断远端主机是否在线并且网络是否正常。

       ping命令中的参数以及作用

参数用户
-c总共发送次数
-l指定网卡名称
-I每次间隔时间(秒)
-W最长等待时间(秒)

例如: ping命令测试一台在线主机(其IP地址为192.168.1.103)

[root@linuxprobe ~]# ping -c 4 192.168.1.103
PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.
64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.327 ms
64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.256 ms
64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.259 ms
64 bytes from 192.168.1.103: icmp_seq=4 ttl=64 time=0.640 ms

--- 192.168.1.103 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 0.256/0.370/0.640/0.159 ms

例如: ping命令测试一台不在的主机(其IP地址为192.168.1.20)

[root@linuxprobe ~]# ping -c 4 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
From 192.168.1.106 icmp_seq=1 Destination Host Unreachable
From 192.168.1.106 icmp_seq=2 Destination Host Unreachable
From 192.168.1.106 icmp_seq=3 Destination Host Unreachable
From 192.168.1.106 icmp_seq=4 Destination Host Unreachable

--- 192.168.1.20 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 89ms
pipe 4

🧊8.tracepath命令

作用:用于显示数据包到达目的地主机途中经过的所有路由信息
语法:tracepath [参数] 域名

       当两台主机之间无法正常ping通时,要考虑两台主机之间是否有错误的路由信息,导致数据被某一台设备错误地丢弃。这时可以使用tracepath命令追踪数据包到达目的主机时途中的所有路由信息,以分析时哪台设备出来问题。下面的情况就很清晰了:

[root@linuxprobe~]# tracepath www.linuxprobe.com
1?: [LOCALHOST] pmtu 1500
1: no reply
2: 11.223.0.189 5.954ms asymm 1
3: 11.223.0.14 6.256ms asymm 2
4: 11.220.159.62 3.313ms asymm 3
5: 116.251.107.13 1.841ms
6: 140.205.50.237 2.416ms asymm 5
7: 101.95.211.117 2.772ms
8: 101.95.208.45 40.839ms
9: 101.95.218.217 13.898ms asymm 8
10: 202.97.81.162 8.113ms asymm 9
11: 221.229.193.238 15.693ms asymm 10
12: no reply
13: no reply
14: no reply
15: no reply
16: no reply
17: no reply
18: no reply
………………省略部分输出信息………………………

🧊9.netstat命令

作用:用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为"network status"。
语法:netstat [参数]

netstat命令中的参数以及作用

参数作用
-a显示所有连接中的Socket
-p显示正在使用的Socket
-t显示TCP协议的连接状态
-u显示UDP协议的连接状态
-n使用IP地址,不使用域名
-l仅列出正在监听的服务状态
-i现在网卡列表信息
-r显示路由表信息

例如: 使用netstat -a命令显示详细的网络状况:

[root@linuxprobe ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 linuxprobe.com:domain   0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
tcp        0      0 172.22.46.174:ssh       172.22.46.199:61672     ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
tcp6       0      0 [::]:mysqlx             [::]:*                  LISTEN     
tcp6       0      0 localhost:mxi           [::]:*                  LISTEN     
tcp6       0      0 [::]:8009               [::]:*                  LISTEN     
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
tcp6       0      0 [::]:webcache           [::]:*                  LISTEN    
………………省略部分输出信息………………

例如: 使用netstat -i命令显示网卡列表:

[root@linuxprobe ~]# netstat -i
Kernel Interface table
Iface              MTU     RX-OK  RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR  Flg
ens160         1500    105938   0            0                0                52192     0             0              0          BMRU
lo                    65536  4189       0            0 		0          	   4189        0      	 0     	      0	       LRU
virbr0           1500        0            0            0	    0                 0              0     	     0    	    0 	   BMU

🧊10.history命令

作用:用于显示历史执行过的命令
语法:history [参数] [目录]

       执行history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。 如果觉得1000不够用,可以定义/etc/profile文件中的HISTSIZE变量值。

       使用“!编码数字” 的方式来重复执行某一次的命令。

例如: 重复两次执行history命令

[root@linuxprobe ~]# history
    1  netstat -i
    2  netstat -l
    3  ls
    4  history
    5  ls
    6  hitory
    7  history  
[root@linuxprobe ~]# !4
history
    1  netstat -i
    2  netstat -l
    3  ls
    4  history
    5  ls
    6  hitory
    7  history

history命令的参数以及作用

参数作用
-a将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c清空当前历史命令列表
-n从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r读取命令历史文件到当前的Shell历史命令内存缓冲区
-s将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w把当前的shell历史命令内存缓冲区的内容写入命令历史文件
-d删除历史命令列表中指定序号的命令

       历史命令会被保存到用户家目录中的.bash_history 文件中。Linux 系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用 cat 命令查看其文件内容:

[root@linuxprobe~]# cat ~/.bash_history

显示最近的10条命令:

[root@linuxcool ~]# history 10  

将本次登录的命令写入历史文件中:

[root@linuxcool ~]# history -w

将命令历史文件中的内容读入到目前shell的history记忆中 :

[root@linuxcool ~]# history -r  

将当前Shell会话的历史命令追加到命令历史文件中:

[root@linuxcool ~]# history -a  

清空当前历史命令列表:

[root@linuxcool ~]# history -c 

🧊11.sosreport命令

作用:用于收集系统配置架构信息输出诊断文档
语法:输入sosreport命令回车即可

       当 Linux 系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,亦或让他们能提前了解某些复杂问题。

​ 使用sosreport命令后,两次回车确认:

image-20230215145343125

       在下面的输出信息中,会生成收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可:

image-20230215145716547

       sosreport 命令有点像是远程问诊。假如我们今天有点咳嗽发烧不舒服,可以先从网上搜索相关症状的病因,如果仅仅是感冒的话那就多喝水,这就免去了到医院挂号看病的车马劳顿;而如果怀疑出了大毛病,再请专业人员进行处理也不迟。


在这里插入图片描述

  1. CentOS7+VMware 14的安装教程
  2. 了解系统内核和 Shell 终端的关系与作用
  3. 新手必须掌握的Linux命令之《常用系统工作命令》
  4. 新手必须掌握的Linux命令之《系统状态检查命令》
  5. 新手必须掌握的Linux命令之《查找定位文件命令》
  6. 新手必须掌握的Linux命令之《文本文件编辑命令》
  7. 新手必须掌握的Linux命令之《文件目录管理命令》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小满@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值