028 ps命令
命令说明
ps(process status)用于查看当前进程快照,输出 PID、CPU/内存占用、启动时间、命令等,是排查进程、定位占用资源程序的基础命令。
语法
ps [选项]
常用参数
| 参数 | 说明 |
|---|---|
| -aux | BSD 风格:显示所有用户进程,含 CPU/内存占用(最常用) |
| -ef | UNIX 风格:显示所有进程及父 PID、完整命令 |
| -eLf | 显示所有进程及线程(LWP) |
| -p PID | 只看指定 PID 的进程 |
| -u 用户 | 只看某用户的进程 |
| --sort | 按字段排序,如 --sort=-%cpu |
| -o | 自定义输出列,如 -o pid,ppid,cmd,%cpu |
| --forest | 以树状缩进显示进程层级 |
使用示例
$ ps aux
查看所有进程(含资源占用)
$ ps -ef
查看所有进程及父进程
$ ps aux | grep nginx
查找 nginx 进程
$ ps -u root
只看 root 用户的进程
$ ps -p 1234
查看 PID 为 1234 的进程
$ ps aux --sort=-%cpu | head
按 CPU 占用降序看前几名
$ ps aux --sort=-%mem | head
按内存占用降序
$ ps -eo pid,ppid,user,%cpu,%mem,cmd
自定义输出关键列
$ ps -ef --forest
树状展示进程父子关系
实用技巧
- ps 是快照,动态刷新用 top 或 htop;ps 适合脚本与一次性查看。
- aux 与 -ef 区别:aux 显示 %CPU/%MEM 但无 PPID;-ef 显示 PPID 与完整启动命令。
- 找某进程 PID 再 kill:ps -ef | grep app | grep -v grep | awk "{print $2}"。
- 统计进程数:ps -e --no-headers | wc -l。
- 查看线程:ps -T -p PID 或 ps -eLf。