ps
命令(最常用)
作用:列出当前进程信息。
常用组合:
ps aux | grep [进程名] # 查看特定进程的PID ps -ef | grep [进程名] # 完整格式列表
示例:查找Nginx进程的PID
ps aux | grep nginx
输出示例:
root 1234 0.0 0.1 12345 6789 ? S 10:00 0:00 nginx: master process
关键列:
- 第二列(
1234
)即为PID- 第四列为内存占用,第十一列为进程名
pgrep
命令(精准匹配)
作用:直接通过进程名返回PID,无需额外过滤。
语法:
pgrep [选项] [进程名]
示例:
pgrep nginx # 返回所有Nginx进程的PID pgrep -f "python3" # 匹配完整命令行(含参数)
输出:
1234
5678
pidof
命令(快速查询)
作用:返回指定进程名的所有PID(仅匹配进程名)。
示例:
pidof nginx
输出:
1234 5678 # 多个PID以空格分隔
top
/ htop
命令(动态监控)
作用:实时显示进程资源占用,交互式查看PID。
操作:
- 运行
top
或htop
(需安装) - 按
F3
搜索进程名(htop
支持) - 按
Shift + M
按内存排序(top
中)
输出关键列:
PID
:进程ID%CPU
:CPU占用率COMMAND
:进程名
/proc
文件系统(底层查看)
原理:Linux内核通过虚拟目录 /proc
暴露进程信息。
操作:
ls /proc | grep -P '^\d+$' # 列出所有PID目录 cat /proc/[PID]/status # 查看某个进程的详细信息
示例:查看PID为1234的进程名
cat /proc/1234/comm
pstree
命令(树形结构)
作用:以树状图显示进程及其子进程的PID。
示例:
pstree -p | grep nginx # 显示进程树并过滤
输出:
nginx(1234)─┬─nginx(5678)
└─nginx(9012)
systemctl
(系统服务专用)
适用场景:查看系统服务(如SSH、Nginx)的PID。
示例:
systemctl status nginx | grep PID
输出:
Main PID: 1234 (nginx)
如何选择方法?
场景 | 推荐命令 |
---|---|
快速查找单个进程 | pgrep 或 pidof |
查看进程详细信息 | ps aux |
实时监控资源占用 | top / htop |
分析进程父子关系 | pstree -p |
系统服务管理 | systemctl |
脚本中自动获取PID | pgrep |
注意事项:
- 普通用户只能查看自身进程,
root
用户可查看所有进程。- 部分命令需安装(如
htop
:sudo apt install htop
)。- 若进程未启动,所有命令均返回空结果。
引用说明: 基于Linux内核文档(kernel.org)及GNU核心工具集(gnu.org/software)的官方手册,验证环境为Ubuntu 22.04 LTS和CentOS 9,命令兼容主流Linux发行版(Debian、RHEL、Arch等)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7382.html