
ps(Process Status)是Linux系统中查看进程状态的核心命令,它能够捕获系统当前瞬间的进程快照,显示进程的PID、CPU/内存使用率、运行状态、启动时间等关键信息。作为系统管理和故障排查的基础工具,ps提供了多种输出格式和过滤选项,帮助用户快速定位特定进程或分析系统资源使用情况。
ps命令支持BSD和System V两种风格的语法,前者通常不带短划线(如ps aux),后者则使用短划线(如ps -ef)。两种风格虽然输出格式略有不同,但都能提供全面的进程信息。掌握ps命令是每个Linux用户必备的技能,它为我们打开了一扇了解系统内部运行的窗口。
1. 基本语法
| 命令 | 说明 |
|---|
ps | |
ps -e | |
ps -f | |
ps aux | |
ps -ef | |
2. 进程列表查看
| 命令 | 说明 |
|---|
ps -e | |
ps -ef | |
ps aux | |
ps -u 用户名 | |
ps -p 1234 | |
3. 选择与过滤
| 命令 | 说明 |
|---|
ps -C nginx | |
ps -p 1234,5678 | |
ps -u root -U root | |
ps -t pts/0 | |
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | |
4. 自定义输出列
| 命令 | 说明 |
|---|
ps -eo pid,cmd | |
ps -eo user,pid,%cpu,%mem,cmd | |
ps -eo pid,lstart,cmd | |
ps -o pid= -o comm= | |
ps -p 1234 -o pid,ppid,user,%cpu,%mem,cmd | |
5. 进程树与父子关系
| 命令 | 说明 |
|---|
ps -ejH | |
ps -axjf | |
ps -o pid,ppid,cmd -p 1234 | |
ps -eo pid,ppid,cmd --sort=ppid | |
6. 实用组合模式
| 命令 | 说明 |
|---|
ps aux | grep nginx | |
ps -C nginx -o pid,cmd | |
ps -eo pid,%cpu,%mem,cmd --sort=-%mem | head | |
ps -eo pid,%cpu,cmd --sort=-%cpu | head | |
ps -ef | grep -v grep | grep sshd | |
7. 故障排查指南
| 问题 | 解决方法 |
|---|
| 命令在输出中不可见 | 使用 ps -ef 或 ps aux 查看完整进程列表 |
| 进程在两次检查间消失 | 进程可能是短生命周期的,使用 watch 持续监控 |
| grep显示自身 | 使用 ps -C 进程名 或 pgrep 替代原始grep |
| 缺少预期的进程详情 | 使用 -o 添加需要的字段(如 %cpu, %mem, lstart) |
| 需要精确的PID进行kill操作 | 使用 ps -C 进程名 -o pid= 或 pgrep 进程名 |
温馨提示: ps命令显示的是执行瞬间的进程快照,如果需要实时监控进程变化,可以结合 watch 命令使用。例如 watch -n 1 'ps -eo pid,%cpu,cmd --sort=-%cpu | head' 可以每秒更新CPU Top10进程。对于需要长期分析的场景,建议使用 top 或 htop 等动态监控工具。
关注公众号(haopython),请回复: LLTPS