ps
命令(最常用)
作用:查看当前进程快照
常用组合:
ps -e | grep 关键词 # 模糊匹配进程名(如查找Nginx) ps -ef | grep 关键词 # 显示完整进程信息(含父进程PID) ps -eo pid,comm # 仅输出PID和进程名(简洁模式)
示例:
$ ps -e | grep nginx 1234 nginx 5678 nginx-worker
特点:
-e
显示所有进程,-f
显示完整格式(含启动命令)comm
列显示进程名(截断至15字符),args
列显示完整命令
top
/ htop
命令(动态监控)
作用:实时查看进程资源占用
操作:
top # 默认启动,按 `Shift+P` 按CPU排序 htop # 更友好界面(需安装:`sudo apt install htop`)
显示字段:
COMMAND
:进程名称(htop
中可展开完整路径)- 支持交互式搜索(
htop
按F3
输入关键词)
pgrep
命令(精准检索)
作用:直接通过进程名查找PID
语法:
pgrep -l 进程名 # 返回PID和进程名 pgrep -a 进程名 # 显示完整命令行
示例:
$ pgrep -l firefox 8895 firefox
优势:
- 避免
grep
自身进程干扰(自动过滤grep
命令) - 支持正则表达式(如
pgrep '^nginx$'
精确匹配)
/proc
文件系统(底层查看)
原理:每个进程在 /proc/PID/
下有详细信息
操作:
cat /proc/1234/comm # 查看PID=1234的进程名(内核级名称) cat /proc/1234/cmdline # 查看启动完整命令(含参数)
适用场景:
- 脚本中精确获取进程名
- 分析进程启动参数
pstree
命令(树形结构)
作用:以树状图显示进程父子关系
示例:
pstree -p | grep nginx # 显示nginx及其子进程
输出示例:
nginx(1234)─┬─nginx(5678)
└─php-fpm(9012)
组合命令技巧
- 统计进程数量:
ps -e | grep -c nginx
- 查看进程完整路径:
ls -l /proc/1234/exe
注意事项
- 权限要求:
- 普通用户仅查看自身进程
- 系统级进程需
sudo
提权(如sudo ps -ef
)
- 名称截断问题:
ps
默认截断进程名,使用ps -eww
或htop
查看完整命令 - 进程名 vs 命令名:
- 进程名(
comm
):内核记录的短名称(不可修改) - 命令行(
cmdline
):启动时传递的参数(可能含路径)
- 进程名(
总结建议
- 快速检索 → 用
pgrep
或ps -e | grep
- 实时监控 → 用
htop
- 分析进程关系 → 用
pstree
- 脚本处理 → 用
/proc
或pgrep
引用说明基于Linux内核文档(kernel.org/docs)及Ubuntu、CentOS官方手册,命令兼容主流Linux发行版(Debian、RHEL、Arch等),实践环境为Linux 5.15+,建议读者通过
man [命令]
查阅手册获取最新细节。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6120.html