在 Linux 系统中,ps 命令用于查看当前正在运行的进程信息,它是系统管理和故障排查中最常用的命令之一。
以下是 ps 命令的常用用法、参数详解以及输出列含义:
基本用法
查看当前终端下的进程
ps
只显示当前 shell 会话中启动的进程。
查看所有进程(最常用)
ps aux
- a: 显示所有终端的进程(包括其他用户的)。
- u: 显示进程的拥有者(用户)。
- x: 显示没有控制终端的进程(如守护进程)。
以树状结构显示进程关系
ps auxf # 或 ps -ef --forest
有助于查看父子进程关系。
按特定条件筛选进程
ps aux | grep nginx
查找包含 “nginx” 的进程。
按进程 ID (PID) 查看
ps -p 1234
查看 PID 为 1234 的进程详情。
按用户查看
ps -u root
查看 root 用户运行的所有进程。
常用参数详解
| 参数 | 含义 |
|---|---|
-A 或 -e |
显示所有进程(等价于 ps aux 中的 a 和 x) |
-u |
显示进程的用户名 |
-f |
完整格式输出(包含 PPID、C、STIME、TTY、TIME、CMD 等) |
-l |
长格式输出(更详细的状态信息) |
-p |
指定 PID 查看进程 |
-u |
指定用户名查看进程 |
-C |
指定命令名查看进程(如 ps -C nginx) |
-o |
自定义输出格式(如 ps -eo pid,comm,%cpu,%mem) |
输出列含义解释(以 ps aux 为例)
| 列名 | 含义 |
|---|---|
| USER | 进程所有者 |
| PID | 进程 ID |
| %CPU
|
CPU 使用率 |
| %MEM | 内存使用率 |
| VSZ | 虚拟内存使用量(KB) |
| RSS | 常驻内存集大小(实际使用的物理内存,KB) |
| TTY | 终端名称( 表示无终端,通常是后台服务) |
| STAT | 进程状态(见下表) |
| START | 进程启动时间 |
| TIME | 进程累计使用的 CPU 时间 |
| COMMAND | 启动该进程的命令行 |
进程状态(STAT 列)常见值:
- R: 运行中(Running)
- S: 睡眠中(Sleeping,等待事件)
- D: 不可中断睡眠(Disk Sleep,通常在等待 I/O)
- T: 已停止(Stopped,如被
Ctrl+Z暂停) - Z: 僵尸进程(Zombie,进程已终止但父进程未回收)
- <: 高优先级
- N: 低优先级
- s: 会话领导者(Session Leader)
- l: 多线程
实用技巧
查看最耗资源的进程
# 按 CPU 使用率排序 ps aux --sort=-%cpu | head -n 10 # 按内存使用率排序 ps aux --sort=-%mem | head -n 10
自定义输出格式
ps -eo pid,user,%cpu,%mem,comm --sort=-%cpu | head -n 10
显示 PID、用户、CPU%、MEM%、命令名,并按 CPU 降序排列。
结合 kill 终止进程
# 查找并终止 nginx 进程
kill $(ps aux | grep '[n]ginx' | awk '{print $2}')
注意:使用
[n]ginx是为了避免grep自身进程被匹配到。
替代工具建议
对于更直观的进程监控,推荐使用以下工具:
top: 动态实时查看进程(按P按 CPU 排序,按M按内存排序)。htop:top的增强版,支持彩色显示、鼠标操作、树状视图(需安装)。pstree: 以树状结构显示进程关系。
# 安装 htop(以 Ubuntu/Debian 为例) sudo apt install htop # 运行 htop
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484211.html



