系统状态检测命令、查找定位文件命令
系统状态检测命令
1、ifconfig
ifconfig 命令用于获取网卡配置与网络状态等信息,英文全称为“interface config”,语法格式为“ifconfig [参数] [网络设备]”。
使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就
是网卡名称、inet 参数后面的 IP 地址、ether 参数后面的网卡物理地址(又称为 MAC 地址),以及 RX、TX 的接收数据包与发送数据包的个数及累计流量.
ifconfig
2、uname
uname 命令用于查看系统内核版本与系统架构等信息,英文全称为“unix name”,语法格
式为“uname [-a]”。
在使用 uname 命令时,一般要固定搭配上-a 参数来完整地查看当前系统的内核名称、主
机名、内核发行版本、节点名、压制时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息:
uname -a
如果要查看当前系统版本的详细信息,则需要查看 redhat-release 文件,其命令以及相应的结果如下:
cat /etc/redhat-release
3、uptime
uptime 命令用于查看系统的负载信息,输入该命令后按回车键执行即可。
uptime 命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以及
平均负载值等信息。平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况,负载值越低越好:
4、free
free 命令用于显示当前系统中内存的使用量信息,语法格式为“free [-h]”。
在使用 free 命令时,可以结合使用-h 参数以更人性化的方式输出当前内存的实时使用量信息。如果不使用-h(易读模式)查看内存使用量情况,则默认以 KB 为单位。这样一来,服务器如果有几百 GB 的内存,则换算下来就会是一大长串的数字,真不利于阅读。
free -h
5、who
who 命令用于查看当前登入主机的用户终端信息,输入该命令后按回车键执行即可。
这 3 个简单的字母可以快速显示出所有正在登录本机的用户名称以及他们正在开启的终端
信息;如果有远程用户,还会显示出来访者的 IP 地址。
who
6、last
last
last 命令用于调取主机的被访记录,输入该命令后按回车键执行即可。Linux 系统会将每次的登录信息都记录到日志文件中,如果哪天想翻阅了,直接执行这条命令就行。
7、ping
ping 命令用于测试主机之间的网络连通性,语法格式为“ping [参数] 主机地址”。
执行 ping 命令时,系统会使用 ICMP 向远端主机发出要求回应的信息,若连接远端主机的网络没有问题,远端主机会回应该信息。由此可见,ping 命令可用于判断远端主机是否在线并且网络是否正常。
ping -c 4 192.168.10.10
ping -c 4 192.168.10.20
8、tracepath
tracepath 命令用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式为
“tracepath [参数] 域名”。
当两台主机之间无法正常 ping 通时,要考虑两台主机之间是否有错误的路由信息,导致
数据被某一台设备错误地丢弃。这时便可以使用 tracepath 命令追踪数据包到达目的主机时途中的所有路由信息,以分析是哪台设备出了问题。
9、netstat
netstat 命令用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为
“network status”,语法格式为“netstat [参数]”。
netstat -a
netstat -i
10、history
history 命令用于显示执行过的命令历史,语法格式为“history [-c]”。
history 命令应该是运维人员最喜欢的命令。执行 history 命令能显示出当前用户在本地计
算机中执行过的最近 1000 条命令记录。如果觉得 1000 不够用,可以自定义/etc/profile 文件中的 HISTSIZE 变量值。在使用 history 命令时,可以使用-c 参数清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。
history
!3
历史命令会被保存到用户家目录中的.bash_history 文件中。Linux 系统中以点(.)开头的
文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用 cat 命令查看其文件内容:
cat ~/.bash_history
要清空当前用户在本机上执行的 Linux 命令历史记录信息,可执行如下命令:
history -c
11、sosreport
sosreport 命令用于收集系统配置及架构信息并输出诊断文档,输入该命令后按回车键执行即可。
当 Linux 系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简
单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,抑或让他们能提前了解某些复杂问题。输出信息中,收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可
sosreport
查找定位文件命令
1、pwd
pwd 命令用于显示用户当前所处的工作目录,英文全称为“print working directory”,输
入该命令后按回车键执行即可。使用 pwd 命令查看当前所处的工作目录
pwd
2、cd
cd 命令用于切换当前的工作路径,英文全称为“change directory”,语法格式为“cd [参
数] [目录]”。
这个命令应该是最常用的一个 Linux 命令了。可以通过 cd 命令迅速、灵活地切换到不同
的工作目录。除了常见的切换目录方式,还可以使用“cd -
”命令返回到上一次所处的目录,使用“cd..
”命令进入上级目录,以及使用“cd~
”命令切换到当前用户的家目录,抑或使用“cd~username
”命令切换到其他用户的家目录。例如,使用下述的 cd
命令切换进/etc
目录中:
cd /etc
cd /bin
cd -
cd~
随着切换目录的操作,命令提示符也在发生变化,例如[root@linuxprobe etc]#
就是
在告诉我们当前处于/etc
中。
3、ls
ls 命令用于显示目录中的文件信息,英文全称为“list”,语法格式为“ls [参数] [文件名称]”。
所处的工作目录不同,当前工作目录下能看到的文件肯定也不同。使用 ls 命令的-a 参数
可以看到全部文件(包括隐藏文件),使用-l 参数可以查看文件的属性、大小等详细信息。将这两个参数整合之后,再执行 ls 命令即可查看当前目录中的所有文件并输出这些文件的属性信息:
ls -al
ls -a -l
以点开始的文件表示隐藏文件,一般是系统文件,例如 .config
如果想要查看目录属性信息,则需要额外添加一个-d 参数。例如,可使用如下命令查看
/etc 目录的权限与属性信息:
ls -ld /etc
4、tree
tree 命令用于以树状图的形式列出目录内容及结构,输入该命令后按回车键执行即可。
虽然 ls 命令可以很便捷地查看目录内有哪些文件,但无法直观地获取到目录内文件的层
次结构。比如,假如目录 A 中有个 B,B 中又有个 C,那么 ls 命令就只能看到最外面的 A 目录,显然有些时候这不太够用。tree 我们来对比一下两者的区别。
使用 ls 命令查看目录内的文件:
ls
tree
5、find
find 命令用于按照指定条件来查找文件所对应的位置,语法格式为“find [查找范围] 寻找条件”。
在 Linux 系统中,搜索工作一般都是通过 find 命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。find 命令的参数以及作用如表 2-13 所示。
根据文件系统层次标准(Filesystem Hierarchy Standard)协议,Linux 系统中的配置文件
会保存到/etc 目录中(详见第 6 章)。如果要想获取该目录中所有以 host 开头的文件列表,可以执行如下命令:
find /etc -name "host*"
如果要在整个系统中搜索权限中包括 SUID 权限的所有文件,只需使用-4000 即可:
find / -perm -4000 -print
在整个文件系统中找出所有归属于 linuxprobe 用户的文件并复制到/root/findresults 目录中。该实验的重点是“-exec {} ;”参数,其中的{}表示 find 命令搜索出的每一个文件,并且
命令的结尾必须是“;”。完成该实验的具体命令如下:
find / -user linuxprobe -exec cp -a{} /root/findresults/ \;
6、locate
locate 命令用于按照名称快速搜索文件所对应的位置,语法格式为“locate 文件名称”。
使用 find 命令进行全盘搜索虽然更准确,但是效率有点低。如果仅仅是想找一些常见的
且又知道大概名称的文件,不如试试 locate 命令。在使用 locate 命令时,先使用updateddb 命令生成一个索引库文件,这个库文件的名字是/var/lib/mlocate/mlocate.db,后续在使用 locate命令搜索文件时就是在该库中进行查找操作,速度会快很多。
第一次使用locate 命令之前,记得先执行updatedb 命令来生成索引数据库,然后再进行查找:
updatedb
ls -l /var/lib/mlocate/mlocate.db
使用 locate 命令搜索出所有包含“whereis”名称的文件所在的位置:
locate whereis
7、whereis
whereis 命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式为“whereis 命令名称”。
简单来说,whereis 命令也是基于 updatedb 命令所生成的索引库文件进行搜索,它与 locate命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所在的位置。
下面使用 whereis 命令分别查找出 ls 和 pwd 命令所在的位置:
whereis ls
whereis pwd
8、which
which 命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为“which 命令名称”。
which 命令是在 PATH 变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是说,如果我们既不关心同名文件(find 与 locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那么这个 which 命令就太合适了。下面查找一下 locate 和 whereis 命令所对应的路径:
which locate
which whereis