系统状态检测命令

我们学习本节的系统的检测命令之前已经先了解了系统的工作命令,在接下来我们逐步学习的内容:
网卡网络
系统内核
系统负载
内存使用情况
当前启用终端数量
历史登陆记录
命令执行记录
救援诊断
1 ifconfig 命令
ifconfig命令用于获取网卡配置与网络状态等信息
格式 “ifconfig [网络设备][参数]”

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.47.129  netmask 255.255.255.0  broadcast 192.168.47.255
        inet6 fe80::db0e:ff02:44c:ad1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:70:a3:b8  txqueuelen 1000  (Ethernet)
        RX packets 2452  bytes 244340 (238.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 736  bytes 151590 (148.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 

Inet 参数后是 ip 地址,ether 参数后面的是网卡物理地址,又称MAC地址, RX、TX 的接收数据包与发送数据包的个数及累计流量
2 uname 命令
uname 命令用于查看系统内核与版本信息
“uname [-a]”
用上面这个命令来查看系统的内核名称,主机名,内核发行版本,节点名,系统时间,硬件名称,硬件平台,处理器类型,操作系统的名称。如下:

[[email protected] ~]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

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

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

3 uptime 命令
uptime 命令用于查看系统的负载信息
格式为 uptime
此命令可以显示系统的当前时间,回顾一下我们之前查看系统当前时间应用的是date命令,uptime命令还可以查看系统已运行的时间,启用终端数量以及平均负载值等信息,如下:

 uptime
 13:11:00 up  3:05,  3 users,  load average: 0.02, 0.03, 0.05

4 free 命令
free 命令用于显示当前系统中内存的使用量信息
格式为“free [-h]”

[[email protected] ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        160M        643M        6.8M        172M        638M
Swap:          2.0G          0B        2.0G

上面这是我们使用Centos 7版本的输出,
available = free + buffer/cache - 不可被回收内存(共享内存段、
tmpfs、ramfs 等)。
在 CentOS7 之后,用户不需要去计算 buffer/cache,即可以
看到还有多少内存可用。与之不同的是CentOS6 版本,这个版本输出来的比较复杂,需要我们自行计算,一起来看一下系统状态检测命令

系统状态检测命令
第一行:
系统内存主要分为四部分:used(程序已使用内存),free(空闲内存),
buffers(buffer cache),cached(Page cache)。
系统总内存 total = used + free; buffers 和 cached 被算在used 里,因此第一行系统已使用内存 used = buffers + cached + 第二行系统已使用内存 used
由于 buffers 和 cached 在系统需要时可以被回收使用,因此系统可用内存 = free + buffers + cached;
shared 为程序共享的内存空间,往往为 0。
第二行:
正因为 buffers 和 cached 在系统需要时可以被回收使用,因
此 buffer 和 cached 其实可以可以算作可用内存,因此:
系统可用内存,即第二行的 free = 第一行的 free + buffers +
cached, 系统已使用内存,即第二行的 used = total - 第二行 free
5 who 命令
who命令用于查看当前登入主机的用户终端信息
格式 “who [参数]”。
这三个简单的字母可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息。

[[email protected] ~]# who
tom      tty1         2018-09-26 18:23
root     pts/1        2018-09-27 11:55 (192.168.47.1)

由上面的命令可以读取出当前登陆主机的终端有一个控制台(tty1)和一个虚拟终端(pts1)


6 last命令
last命令用于查看所有系统的登录记录
格式为“last [参数]”
由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。不能单纯以该命令的输出信息而判断系统有无被恶意入侵!

[[email protected] ~]# last
root     pts/1        192.168.47.1     Thu Sep 27 11:55   still logged in   
root     pts/0        192.168.0.118    Thu Sep 27 11:28 - 13:40  (02:11)    
root     pts/0        192.168.0.118    Wed Sep 26 18:46 - 18:56  (00:10)    
tom      tty1                          Wed Sep 26 18:23   still logged in   
root     pts/0        192.168.17.1     Sat Sep 15 09:51 - 09:54  (00:02)    
tom      tty1                          Sat Sep 15 09:30 - 09:51  (00:21)    
reboot   system boot  3.10.0-693.el7.x Sat Sep 15 09:29 - 14:11 (12+04:41)  

wtmp begins Sat Sep 15 09:29:20 2018

7 history 命令
history 命令用于显示历史执行过的命令
格式为“history [-c]”
调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以 STRING 开
头的命令;
调用上一条命令的最后一个参数:
快捷键:ESC, . 这里是逗号和点号
字符串:!$

[[email protected] ~]# cat etc/log/jkvoi
cat: etc/log/jkvoi: No such file or directory
[[email protected] ~]# cat !$
cat etc/log/jkvoi
cat: etc/log/jkvoi: No such file or directory

这里仅作字符串快捷键的实验参考给大家看

[[email protected] ~]# history -c
-c: 清空命令历史,当前命里历史列表中的数据;
-d offset:删除指定命令历史
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中。

8 sosreport 命令
sosreport 命令用于收集系统配置及架构信息并输出诊断文档
格式为 sosreport
因为最小化安装中默认是没有安装这个文件的,需要我们自行安装仅此先做了解,日后会详细编写该命令的具体操作信息。