028 ps命令

命令说明

ps(process status)用于查看当前进程快照,输出 PID、CPU/内存占用、启动时间、命令等,是排查进程、定位占用资源程序的基础命令。

语法

ps [选项]

常用参数

参数说明
-auxBSD 风格:显示所有用户进程,含 CPU/内存占用(最常用)
-efUNIX 风格:显示所有进程及父 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。