ps aux | grep 是一个常用的Linux/Unix命令组合,用于查找特定进程信息。下面我将详细解释这个命令的各个部分:
ps aux 部分
ps 是"process status"的缩写,用于显示当前系统的进程状态。
参数解释:
a:显示所有用户的进程(而不仅是当前用户的进程)
u:以用户为主的格式显示
x:显示没有控制终端的进程(通常包括系统守护进程)
ps aux 输出列说明:
USER:进程所有者
PID:进程ID
%CPU:CPU使用百分比
%MEM:内存使用百分比
VSZ:虚拟内存使用量(KB)
RSS:常驻内存使用量(KB)
TTY:终端
STAT:进程状态
R:运行中
S:睡眠中
D:不可中断的睡眠
Z:僵尸进程
T:停止或跟踪
<:高优先级
N:低优先级
s:会话领导者
l:多线程
+:前台进程
START:进程启动时间
TIME:CPU占用时间
COMMAND:启动进程的命令
grep 部分
grep 是强大的文本搜索工具,用于过滤包含特定模式的行。
常用grep选项:
-i:忽略大小写
-v:反向匹配(显示不包含模式的行)
-n:显示行号
-w:全词匹配
-A num:显示匹配行及之后num行
-B num:显示匹配行及之前num行
-C num:显示匹配行及前后num行
组合使用示例
1.查找特定进程(如nginx):
ps aux | grep nginx
2.查找并排除grep自身进程:
ps aux | grep [n]ginx
或
ps aux | grep nginx | grep -v grep
3.查找特定用户的进程:
ps aux | grep ^username
4.查找并统计进程数量:
ps aux | grep process_name | wc -l
注意事项
ps aux 在不同Unix系统上可能有差异(如BSD vs System V风格)
grep 默认是区分大小写的
使用pgrep和pkill可能是更专业的进程查找/操作工具
在脚本中使用时,考虑使用pgrep -f可能更可靠
这个命令组合是系统管理员和开发人员诊断系统问题、监控进程状态的常用工具。
ps aux | grep 'php'