命令功能
ps命令用于显示当前进程的状态信息。它可以显示系统中正在运行的进程,包括进程 ID、CPU 使用率、内存使用情况、启动时间等详细信息,是系统管理和故障排查的重要工具。
基本语法
ps [选项]
常用选项
进程选择选项
| 选项 | 说明 |
|---|---|
-A | 显示所有进程 |
-a | 显示所有终端上的进程,除了会话首进程 |
-e | 显示所有进程(同 -A) |
-d | 显示所有进程,但不包括会话首进程 |
-N | 显示所有进程,但不包括指定条件的进程 |
-T | 显示当前终端上的所有进程 |
-r | 只显示正在运行的进程 |
-x | 显示没有控制终端的进程 |
输出格式控制选项
| 选项 | 说明 |
|---|---|
-f | 显示完整格式的进程信息 |
-F | 显示额外完整格式的进程信息 |
-l | 显示长格式的进程信息 |
-j | 显示作业格式的进程信息 |
-o | 自定义输出格式 |
-u | 显示指定用户的进程 |
-p | 显示指定进程 ID 的进程 |
-C | 显示指定命令名的进程 |
其他选项
| 选项 | 说明 |
|---|---|
--sort | 按指定字段排序输出 |
--forest | 以树状结构显示进程层次关系 |
--headers | 重复显示表头 |
--no-headers | 不显示表头 |
使用示例
显示当前终端进程
ps
显示所有进程
ps -A
ps -e
显示完整格式的进程信息
ps -ef
显示长格式的进程信息
ps -l
显示指定用户的进程
ps -u username
显示指定进程 ID 的进程
ps -p 1234
显示指定命令名的进程
ps -C nginx
以树状结构显示进程
ps -ef --forest
自定义输出格式
ps -eo pid,user,comm,%cpu,%mem
按 CPU 使用率排序
ps -eo pid,user,comm,%cpu --sort=-%cpu
输出字段说明
| 字段 | 说明 |
|---|---|
PID | 进程 ID |
PPID | 父进程 ID |
USER | 进程所有者 |
%CPU | CPU 使用率 |
%MEM | 内存使用率 |
VSZ | 虚拟内存大小(KB) |
RSS | 物理内存大小(KB) |
TTY | 进程所在的终端 |
STAT | 进程状态 |
START | 进程启动时间 |
TIME | 进程占用 CPU 时间 |
COMMAND | 启动进程的命令 |
进程状态说明
| 状态 | 说明 |
|---|---|
R | 运行中或可运行 |
S | 可中断的睡眠状态 |
D | 不可中断的睡眠状态 |
T | 停止状态 |
Z | 僵尸进程 |
X | 死掉的进程 |
< | 高优先级 |
N | 低优先级 |
L | 有页面锁定在内存中 |
s | 会话首进程 |
l | 多线程进程 |
+ | 位于前台进程组 |
注意事项
- 权限要求:普通用户只能查看自己的进程,root 用户可以查看所有进程
- 实时性:
ps显示的是执行命令时的进程快照,不是实时监控 - 输出格式:不同选项组合会产生不同的输出格式,建议使用
-ef或-aux查看完整信息 - 进程管理:
ps只用于查看进程,要管理进程需要使用kill、pkill等命令
相关命令
top:实时显示进程状态htop:增强版的 top 命令pstree:以树状结构显示进程kill:终止进程pkill:按名称终止进程pgrep:按名称查找进程
实用技巧
查找特定进程
ps -ef | grep nginx
查看进程的完整命令行
ps -p 1234 -o cmd
查看进程的环境变量
ps -p 1234 -o environ
查看进程打开的文件
lsof -p 1234
监控进程资源使用
watch -n 1 'ps -p 1234 -o pid,user,%cpu,%mem,cmd'
ps命令是 Linux 系统管理中最基础且最常用的命令之一,熟练掌握其用法对于系统运维和故障排查至关重要。