1、常用系统进程相关命令
1.1、ps 命令
ps 是 processes 的缩写,其功能是查看当前系统进程状态,语法格式为:“ps [选项]
”
在 Linux 系统中的命令选项有长短格式之分,多个短格式的选项可以合并,合并后仅保留一个 -(减号),如 ps -a -u -x 可合并写成 ps -aux。
多个长格式或长短格式混合均不能合并。
另外 ps 命令允许选项不加减号(-),因此 ps -aux 可进一步简化为 ps aux。
常见选项和含义如表
选项 | 含义 |
---|---|
-a | 显示所有用户进程(包括其他用户的进程) |
-u | 显示进程所有者的信息 |
-x | 显示没有控制终端的进程及后台进程 |
-e | 显示所有进程 |
-r | 只显示正在运行的进程 |
-f | 按全格式显示(列出进程间父子关系) |
-l | L 的小写,按长格式显示 |
最常用的使用选项组合是 aux
输出的第一行列标题的含义简要解释如下表
字段 | 含义 |
---|---|
USER | 进程的所有者 |
PID | 进程 ID 号 |
%CPU | CPU 占用率 |
%MEM | 内存占用率 |
VSZ | 虚拟内存使用量(单位 KB) |
RSS | 常驻内存大小(Resident Set Size),单位 KB |
TTY | 进程的控制终端(值?表示该进程与控制终端没有关联) |
STAT | 进程状态 |
START | 进程启动时间 |
TIME | 进程已执行的时间 |
COMMAND | 进程对应的程序名和运行参数 |
Linux 系统中常见的进程状态
符合 | 详细 |
---|---|
R(Running) | 正在运行或就绪状态。 |
S(Sleeping) | 可中断的休眠状态。 |
D(Deep sleeping) | 不可中断的深度休眠状态,一般发生在磁盘写入。 |
Z(Zombie) | 僵尸状态,即该进程已经终止。 |
T(Stopped) | 停止状态。 |
I(Idle) | 空闲内核线程。 |
除了上面的 6 种常见进程状态,还有高优先级(<),低优先级(N),有锁进内存的页面(L),包含子进程(s)、多线程(l)和处于前台进程组(+)等 6种补充形式。
若要查看进程之间的继承和层次关系,可以使用 pstree 命令。
1.2、top 命令
ps 仅能静态地输出进程信息,而 top 命令用于动态地查看进程活动及系统负载等信息,类似于 Windows 中的任务管理器。
按 Ctrl+C 组合键可终止查看。
按空格键表示刷新
按 Ctrl+L 表示清空屏幕并重写等
前面 5 行内容是系统状态的统计信息,每行的含义简要介绍如下:
第 1 行是运行时间和系统负载摘要:依次为系统时间、运行时间、登录用户数、平均负载(1 分钟、5 分钟、15 分钟内的平均负载)。
第 2 行是任务进程摘要:依次为进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵尸进程数。
第 3 行是 CPU 使用时间比例摘要:依次为运行的用户进程、系统内核进程、改变过优先级用户进程、空闲进程、等待进程、硬件中断、软件中断和虚拟机等进程占用 CPU 时间的百分比。
第 4 行是物理内存使用情况摘要:依次为物理内存总量、内存空闲量、内存使用量、缓存量,单位 MB。
第 5 行是虚拟内存使用情况摘要:依次为虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已加载的物理内存量。
字段 | 含义 |
---|---|
PID | Process Id,进程 ID 号 |
USER | 进程的所有者 |
PR | Priority,优先级 |
NI | Nice Value,负值表示高优先级,正值表示低先级 |
VIRT | Virtual Memory Size,虚拟内存大小,单位 KB。 |
RES | Resident Memory Size,常驻内存大小,单位 KB。 |
SHR | Shared Memory Size,共享内存大小,单位 KB。 |
S | Process Status,进程状态,包括在 ps 命令中介绍的 6 种常见状态 |
%CPU | CPU Usage,CPU 使用量 |
%MEM | Memory Usage,内存使用量 |
TIME+ | CPU 使用时间总计(精确到 0.01 秒) |
COMMAND | 显示进程对应的程序名称和运行参数 |
1.3、nice 命令
每个进程都有一个优先级参数用于表示 CPU 占用的等级,优先级高的进程更容易获取CPU 资源而更早执行。
进程优先级可用 nice 值表示,其范围是-20 到 19,数字越小,则优先级越高,默认值为 10,系统进程的默认优先级为 0。
nice 命令用于设置进程的优先级,常用语法格式为:“nice -n 值 命令或服务
” 或 “nice --adjustment=N 命令或服务
”。
实际应用中,可以将一些重要进程的优先级调高,而不重要的调低,实现系统资源的合理分配。
wget https://wordpress.org/latest.zip
top | grep "wget"
wget 命令下载文件的优先级值增加 8,降低优先级。再次利用 top命令可以看到 command 字段值为 wget 的 NI 的值从默认的 0 增加到了 8,PR 的值也从默认值 20 增加到了 28。
PRI(new) = PRI(old) + NI
nice -n 8 wget https://wordpress.org/latest.zip
top | grep "wget"
只有 root 管理员用户才能将值 N 设为负数,下调 NI 值,普通用户只能指定正数 N 增加
NI 的值。
1.4 、pidof 命令
pidof命令用于查询某个指定服务进程的PID值,语法格式为:“pidof [选项] 服务名称
”。
PID 用于区分不同的进程,因而每个进程的 PID 是唯一的。
1.5、kill 命令
kill 命令用于终止某个指定 PID 值的服务进程,语法格式为:“kill [选项] PID
”。
当需要终止某个服务进程特别是异常进程时就可以使用 kill 命令。若提示进程无法终止,还可以使用选项-9 强行终止进程。
如果 pidof 命令查询到一个服务包含了多个 PID,为了提高效率,可以直接使用 killall
命令终止服务,该命令的基本用法为:“killall 服务名”。
1.6、 sleep 命令
sleep 命令的功能是使进程暂停运行一段时间,其基本语法格式为:“sleep 时间值
”。
时间值的单位默认为秒。sleep 命令常用于 shell 脚本设计,它使两条命令执行之间停顿
指定的时间。
执行 sync 命令让缓存中的数据写入磁盘,并等待 60 秒,最后重启。
2、常用网络状态查看命令
2.1、ifconfig 命令
ifconfig 英文的全称是 interface config,其作用是查看或配置网络适配器的网络参数,基本语法格式为:“ifconfig [选项] [网络适配器]
”。
不带任何选项和参数时,ifconfig 命令将显示所有网络接口的状态及其网络参数,其功能与命令“ip address”相似。
ifconfig
项目 | 解释 |
---|---|
网络适配器 | 图中的 ens160,以及 flags 中的 UP 和 RUNNING 状态。 |
lo | 本地回环接口 |
virbr0 | 虚拟桥接接口。 |
IP 地址 | inet 后的值 192.168.9.50 |
MAC 地址 | 图中的 ether 后的值00:0c:29:31:ea:e8 |
接收数据包 | 图中的 RX packets 后的值。 |
发送数据包 | 图中的 TX packets 后的值。 |
ifconfig 命令还可以配置网络参数
禁用/开启网络适配器以及查看指定网络适配器的网络参数
ifconfig ens160 down
ifconfig ens160 up
ifconfig ens160
2.2、ping 命令
ping 命令用于测试主机之间的网络连通性,语法格式为:“ping [选项] 目标地址
”。
ping 命令利用 ICMP 回声请求/响应查询报文来测试与目标主机的网络连通性,若收到目标主机的响应报文,则可判定目标主机在线且网络正常。
ping 命令的常见选项以及含义如表
选项 | 含义 |
---|---|
-c | 总共发送次数 |
-I | 指定网络适配器名称 |
-i | 每次间隔时间(秒) |
-W | 最长等待时间(秒) |
-s | 指定发送的数据包的大小 |
ping -c 4 -s 128 www.baidu.com
命令 ping 的示例如图所示,其中指定发送 4 个数据包,每个数据包的大小为 128字节;目标主机每收到一个请求报文都有返回一个回声响应报文。
如果源/目网络相通,其典型特征是系统将显示“X bytes from 目标 IP 地址……”。其中需要重点关注的是最下面的两行统计内容,主要包括统计发送的数据包个数,接收数据包的个数,丢失的个数以及总耗时;往返时间的最小/平均/最大/算术平方差。
若目标主机不在线,或者网络不通,则会提示“Destination Host unreachable”的字样。
如果目标主机没有响应或响应被防火墙过滤,则系统没有任何输出,按 Ctrl+C 组合键终止 ping 时,系统会提示传输的包均被丢失,没有收到响应包。
2.3、tracepath 命令
tracepath 命令用于显示数据包达到目的主机途中所经过的路由信息,一般用于网络排错,比如当两台跨网络的主机无法正常 ping 通时,就可以用该命令排查错误发生在哪个地方,以便分析是中间哪台设备出现问题。
tracepath 命令的常用语法格式为:tracepath [选项] 目标地址
其中常用选项为-n 和-m。选项-n 表示用 IP 地址表示中间设备,选项-m 用于设置探测的最大跳数,默认值为 30。
tracepath 命令也常被入侵者用于网络拓扑探测,因此,大多数情况下,该命令的数据包会被防火墙过滤掉。
tracepath 命令如图所示,图中的 pmtu 是指路径最大传输单元,no reply 表示被防火墙过虑,未收到响应包。
tracepath -n -m 4 www.csdn.net
2.4、netstat 命令
netstat 是 network status 的缩写,该命令用于显示各种网络相关信息,包括网络连接、路由表、接口状态、masquerade 伪装连接,多播成员等。
语法格式为:“netstat [选项]
” 。
netstat 命令的常见选项及含义如表
选项 | 含义 |
---|---|
-a | 显示所有 Socket 连接 |
-p | 显示每个 Socket 连接的程序名称及 PID |
-t | 显示 TCP 协议的连接信息 |
-u | 显示 UDP 协议的连接信息 |
-n | 以数字形式显示信息 |
-l | 仅列出正在监听的服务信息 |
-i | 查看网络接口信息 |
-r | 显示路由表信息 |
-e | 显示扩展信息,如 UID |
与 netstat 功能相似的命令还有 ss,很多选项也类似
3、常用系统状态检测命令
3.1、uname 命令
uname 是 Unix name 的简写,该命令的功能是查看系统信息,包括内核版本与操作系统等信息,语法格式为:“uname [选项]
”。
选项-a 选项来完整地查看当前系统的内核名称、主机名、内核版本、内核编译版本与时间、机器硬件、CPU 类型、硬件平台和操作系统等信息
选项-r 用于显示内核版本信息
3.2、uptime 命令
uptime 命令用于查看当前系统的运行时长,常用选项-p 来以漂亮格式显示系统运行时长。不带任何选项时,将显示当前系统时间、系统运行时长、在线用户数以及最近 1、5 和15 分钟内的平均负载。
3.3、free 命令
free 命令用于显示当前系统中内存的使用情况,语法格式为:“free [选项]
”。
常用选项为-h,表示 human,即以人性化的方式输出当前内存已用/空闲大小
Mi/Gi 表示二进制的字节存储单位,1Gi=1024Mi。
第一行是物理内存 Mem 的使用情况,第二行是虚拟交换内存 Swap 的使
用情况。
字段 | 含义 |
---|---|
total | 内存总量 |
used | 已使用量 |
free | 空闲量 |
shared | 进程共享的内存量 |
buff/cache | 缓冲/缓存量 |
available | 可用物理内存 |
3.4、who 命令
who 命令用于查看登录到当前系统的用户信息,常用选项与含义如表
选项 | 含义 |
---|---|
-H | 显示各列标题名称 |
-u | 显示登录系统的用户名 |
-l | 显示系统登录进程 |
如果有远程用户登录,则会显示出该用户的登录 IP 地址。
图中的 tty2 表示 2 号控制台,常见的有 tty1~tty6,可用 Ctrl+Alt+F1~6 进行切换。pts/0,1,2 ,在桌面 Linux 中分别表示标准输入、标准输出和标准错误。
3.5、last 命令
Linux 系统会将每次登录信息都记录到日志文件中,当需要查阅最近系统登录日志时,就可以使用 last 命令来调。
图中可以看到哪些用户、以何种方式、何时登录到系统,以及现在的状态。
在最下面可以看到日志文件名为 wtmp,以及从何时开始记录。
3.6、sosreport 命令
sosreport 命令用于收集系统配置与诊断信息,并将生成的文档打包。
当 Linux 系统出现故障需要联系技术支持人员时,就可以先使用这个命令来简单收集系统配置与诊断信息,然后将打包的文件发送给技术支持人员,以便让技术支持人员能够远程解决一些小问题,或者让他们能提前了解某些复杂问题。
输入sosreport
,后面需要两次enter键。