linux进程命令
环境说明:
博客使用的linux版本:CentOS Linux release 7.7.1908 (Core)
终端语言调整:调整成汉语是为了方便学习,点击这里查看
一、ps -显示进程状态
- ps命令简介:
ps命令是最基本命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。 - 语法格式:ps [参数]
- 常用参数:
参数 | 含义 |
---|---|
-a | 显示所有终端机下执行的程序,除了阶段作业领导者之外 |
a | 显示现行终端机下的所有程序,包括其他用户的程序 |
-A | 显示所有程序 |
-c | 显示CLS和PRI栏位 |
c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示 |
-C <指令名称> | 指定执行指令的名称,并列出该指令的程序的状况 |
-d | 显示所有程序,但不包括阶段作业领导者的程序 |
-e | 此选项的效果和指定”A”选项相同 |
e | 列出程序时,显示每个程序所使用的环境变量 |
-f | 显示UID,PPIP,C与STIME栏位 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
g | 显示现行终端机下的所有程序,包括群组领导者的程序 |
-G <群组识别码> | 列出属于该群组的程序的状况,也可使用群组名称来指定 |
h | 不显示标题列 |
-H | 显示树状结构,表示程序间的相互关系 |
-j或j | 采用工作控制的格式显示程序状况 |
-l或l | 采用详细的格式来显示程序状况 |
L | 列出栏位的相关信息 |
-m或m | 显示所有的执行绪 |
n | 以数字来表示USER和WCHAN栏位 |
-N | 显示所有的程序,除了执行ps指令终端机下的程序之外 |
-p <程序识别码> | 指定程序识别码,并列出该程序的状况 |
p <程序识别码> | 此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异 |
r | 只列出现行终端机正在执行中的程序 |
-s <阶段作业> | 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况 |
s | 采用程序信号的格式显示程序状况 |
S | 列出程序时,包括已中断的子程序资料 |
-t <终端机编号> | 指定终端机编号,并列出属于该终端机的程序的状况 |
-T | 显示现行终端机下的所有程序 |
u | 以用户为主的格式来显示程序状况 |
-U <用户识别码> | 列出属于该用户的程序的状况,也可使用用户名称来指定 |
U <用户名称> | 列出属于该用户的程序的状况 |
v | 采用虚拟内存的格式显示程序状况 |
-V或V | 显示版本信息 |
-w或w | 采用宽阔的格式来显示程序状况 |
x | 显示所有程序,不以终端机来区分 |
-y | 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 |
注意: ps参数众多,使用频率相当高,请参看cman
4. 应用实例:
-把所有进程显示出来,并输出到ps.txt文件
ps -aux > ps.txt
- 查找指定进程信息
ps -ef | grep nginx
ps -aux | grep nginx
- 按 CPU 内存资源的使用量对进程进行排序:
ps aux | sort -nk 3
ps aux | sort -rnk 4
#从左往右依次排序,数字代表第几个
#USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
二、pstree - 以树状图显示进程
-
pstree简介:
树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。 -
语法格式: pstree [参数]
-
常用参数
参数 | 含义 |
---|---|
-a | 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示 |
-c | 不使用精简标示法 |
-G | 使用VT100终端机的列绘图字符 |
-h | 列出树状图时,特别标明现在执行的程序 |
- 应用实例
- 显示当前所有进程的进程号和进程id,并表示正在执行的程序
pstree -hp
- 显示所有进程的所有详细信息,:
pstree -a
三、pidof - 返回运行程序的进程ID
-
pidof命令简介:
用于检索指定的命令,返回相应的进程ID。其中program是一个或多个命令或进程的名字。当需要终止某个进程时,传统的做法是利用ps命令列出所有的进程,使用grep命令选出目标进程,然后使用kill命令终止进程。
利用pidof命令,可以省略ps与grep组合命令,直接把指定命令的进程ID写入到标准输出。 -
语法格式:pidof [参数]
-
常用参数:
参数 | 含义 |
---|---|
-s | 当系统中存在多个同名进程时,仅返回一个进程ID |
-c | 仅返回当前正在运行且具有同一根目录的进程PID |
-x | 返回指定运行脚本的shell进程PID |
-o | 忽略具有指定进程ID的进程 |
- 应用实例
这个命令使用非常简单
返回nginx的进程pid
pidof nginx
四、 pgrep命令 – 用于检索当前正在运行的进程
- pgrep命令简介:
pgrep命令就是检索正在运行的进程,显示匹配准则是进程的PID,可跟正则表达式来匹配进程或命令行。
选择进程拥有者时,默认匹配规则是逻辑与的关系。 - 语法格式:pgrep [参数] [模式]
- 常用参数:
参数 | 含义 |
---|---|
-d | 设置一个字符串,用于分隔输出的每个进程ID |
-f | 模式参数仅用于匹配进程名 |
-I | 列出进程名及进程ID |
-P | 仅选择匹配指定父进程ID的进程 |
-u | 选择仅匹配指定有效用户ID进程 |
-U | 选择仅匹配指定真实用户ID的进程 |
- 参考实例:
- 查询用户nginx进程的PID:
pgrep nginx
五、top命令 – 实时显示进程动态
- top命令简介:
- top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
- 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。
2.语法格式:top【参数】
3.常用参数:
参数 | 含义 |
---|---|
-d | 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s |
-q | 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 |
-c | 切换显示模式 |
-s | 安全模式,将交谈式指令取消, 避免潜在的危机 |
-i | 不显示任何闲置 (idle) 或无用 (zombie) 的行程 |
-n | 更新的次数,完成后将会退出 top |
-b | 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内 |
4.使用实例
- 显示进程完整信息,设置更新次数为 10
top -c -n 10
六、lsof - 查看进程文件
- 简介:(非基本命令也需要安装)
lsof命令用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。 - 语法格式:lsof [参数] [文件]
- 常用参数
参数 | 含义 |
---|---|
-a | 列出打开文件存在的进程 |
-c <进程名> | 列出指定进程所打开的文件 |
-g | 列出GID号进程详情 |
-d <文件号> | 列出占用该文件号的进程 |
+d <目录> | 列出目录下被打开的文件 |
+D <目录> | 递归列出目录下被打开的文件 |
-n <目录> | 列出使用NFS的文件 |
-i <条件> | 列出符合条件的进程 |
-p <进程号> | 列出指定进程号所打开的文件 |
-u | 列出UID号进程详情 |
-h | 显示帮助信息 |
-v | 显示版本信息 |
- 应用实例
- 递归列出目录下被打开的文件,并显示gid详情
lsof -g +D /etc/nginx
七、fuser – 使用文件或文件结构识别进程
- fuser命令简介:
命令是报告进程使用的文件和网络套接字。fuser命令可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。 它还显示使用指定文件或者文件系统的进程ID。 - 语法格式: fuser [参数] [文件]
- 常用参数:
参数 | 含义 |
---|---|
-a | 显示命令行中指定的所有文件 |
-k | 杀死访问指定文件的所有进程 |
-i | 杀死进程前需要用户进行确认 |
-l | 列出所有已知信号名 |
-m | 指定一个被加载的文件系统或一个被加载的块设备 |
-n | 选择不同的名称空间 |
-u | 在每个进程后显示所属的用户名 |
- 应用实例:
- 列出使用/*文件的本地进程的进程号:
fuser /*
-终止使用给定的文件系统的所有进程
fuser -k -x -u -c /dev/hd1
- 补充:进程号后的字母含义
字母 | 含义 |
---|---|
c | 指示进程的工作目录。 |
e | 指示该文件为进程的可执行文件(即进程由该文件拉起)。 |
f | 指示该文件被进程打开,默认情况下f字符不显示。 |
F | 指示该文件被进程打开进行写入,默认情况下F字符不显示。 |
r | 指示该目录为进程的根目录。 |
m | 指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存 |
八、kill - 杀死进程
- kill命令简介:
kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。 - 语法格式:kill [参数] [进程号]
- 常用参数
参数 | 含义 |
---|---|
-l | 列出系统支持的信号 |
-s | 指定向进程发送的信号 |
-a | 处理当前进程时不限制命令名和进程号的对应关系 |
-p | 指定kill命令只打印相关进程的进程号,而不发送任何信号 |
- 使用实例
- 杀掉nginx所有进程
pgrep nginx
kill -9 1277
kill -9 1278
kill -9 1279
#进程杀掉后浏览器访问ip将无法访问到