一、核心选项分类与功能说明
1. 基础进程查看选项
选项 功能说明 示例与场景
**-e** 显示系统中所有进程(等价于 -A) ps -e 查看所有进程,包括守护进程
**-f** 显示完整格式(包括UID、PPID、启动时间等) ps -ef 显示完整进程信息,适合查看父子进程关系
**-l** 长格式输出(显示F标志、优先级、内存占用等详细信息) ps -l 查看当前用户进程的详细状态
**-u** 以用户为主的格式显示(包含用户名、CPU和内存占用率) ps -u root 查看root用户的进程资源使用情况
**-a** 显示当前终端关联的所有进程(不包括无终端的进程) ps -a 显示当前终端下的活动进程
**-x** 显示无终端控制的进程(常与 a 组合使用) ps aux 显示所有用户及后台进程的完整信息
2. 进程过滤与筛选选项
选项 功能说明 示例与场景
**-p PID** 查看指定PID的进程信息 ps -p 1234 显示PID为1234的进程详情
**-U user** 按用户过滤进程(支持用户名或UID) ps -U 1000 查看UID为1000的用户进程
**-C 命令名** 按进程名称过滤(需完全匹配) ps -C nginx 查找所有名为nginx的进程
**-t TTY** 按终端设备过滤 ps -t pts/0 显示终端pts/0下的进程
**–ppid PPID** 按父进程ID筛选子进程 ps --ppid 5678 查看父进程为5678的所有子进程
3. 输出格式控制选项
选项 功能说明 示例与场景
**-o 列名** 自定义输出列(支持多列组合,如 pid,user,%cpu) ps -eo pid,user,cmd 仅显示PID、用户和命令
**–sort** 按指定列排序(+升序,-降序) ps aux --sort=-%cpu 按CPU使用率降序排列
**-j** 显示BSD任务控制格式(包含PGID、会话ID等) ps -j 查看进程组和会话信息
**-H** 以树状结构显示进程层级关系 ps -efH 显示父子进程的树形结构
**-m** 显示线程信息(适用于多线程程序) ps -m 查看进程的线程详情
4. 特殊功能与高级选项
选项 功能说明 示例与场景
**–forest** 以ASCII字符树状显示进程关系(类似 pstree) ps aux --forest 直观查看进程层级
**-L** 显示进程的LWP(轻量级线程ID) ps -L -p 1234 查看进程1234的线程信息
**-Z** 显示SELinux安全上下文(用于安全策略管理) ps -Z 查看进程的安全标签
**–headers** 重复显示标题行(适用于分页查看时) `ps -e --headers
**-T** 仅显示守护进程(无终端的进程) ps -T 查看所有后台服务进程
二、常用组合与场景示例
1. 监控资源占用
高CPU进程筛选:
bash
ps aux --sort=-%cpu | head -10 # 显示CPU占用前10的进程1,6
高内存进程筛选:
bash
ps -eo pid,user,%mem,cmd --sort=-%mem | head -10 # 内存占用前105
2. 进程状态分析
查看僵尸进程:
bash
ps -eo pid,ppid,stat,cmd | grep ‘Z’ # 筛选状态为Z(僵尸)的进程1,6
按状态过滤:
bash
ps -e -o pid,user,stat,cmd | grep ‘D’ # 查找不可中断睡眠进程3
3. 自定义输出与自动化处理
显示进程启动时间与运行时长:
bash
ps -eo pid,user,lstart,etime,cmd # 包含启动时间和已运行时间7
结合awk统计资源消耗:
bash
ps -eo user,%mem | awk ‘{sum[$1]+=$2} END {for(u in sum) print u, sum[u]“%”}’ # 按用户统计内存占用1
三、选项使用注意事项
权限限制:普通用户无法查看其他用户的完整进程信息,需使用 sudo ps。
输出分页:长输出建议结合 less 或 more(如 ps aux | less)。
进程终止:可通过 kill 或 pkill 配合 ps 筛选结果操作进程。
实时监控:ps 为静态快照,动态监控需使用 top 或 htop。
四、完整选项速查表
分类 选项列表
基础查看 -e, -f, -l, -u, -a, -x
过滤筛选 -p, -U, -C, -t, --ppid
输出控制 -o, --sort, -j, -H, -m
高级功能 --forest, -L, -Z, --headers, -T