在Linux和其他类Unix操作系统中,ps
(process status)命令是一个非常强大的工具,用于获取当前系统中正在运行的进程的信息。本文将详细介绍ps
命令的用法、参数选项及其实际应用场景。
1. 基本介绍
ps
命令用于显示系统的活动进程的状态。它可以帮助用户了解系统上正在运行哪些进程,每个进程使用的资源情况,以及其他有用的信息。
1.1 常见用法
基本的命令语法如下:
ps [选项]
1.2 选项概览
ps
有许多选项,可以用来定制输出信息。下面列出了一些最常用的选项。
2. 参数详解
2.1 常用选项
-A
: 显示所有进程。-a
: 显示除会话领导进程外的所有进程。-u
: 显示属于当前用户的进程。-U
: 显示属于指定用户的进程。-f
: 显示完整的进程树。-F
: 等同于-f
。-e
: 显示所有进程。-x
: 显示没有终端控制的进程。-aux
: 等同于-A -u -x
,显示所有用户的进程。-auxww
: 类似-aux
但不截断输出。-l
: 显示长格式输出。-L
: 显示线程信息。-p <PID>
: 显示指定PID的进程。-pp <PPID>
: 显示具有指定父进程ID的进程。-t <TTY>
: 显示与指定TTY相关的进程。-w
: 宽输出,避免字段被截断。-o
: 自定义输出格式。
2.2 输出列详解
%CPU
: CPU使用率百分比。%MEM
: 内存使用率百分比。TTY
: 终端。STAT
: 进程状态。TIME
: 进程占用CPU的时间。COMMAND
: 进程的命令行。
3. 示例
3.1 显示所有进程
ps aux
3.2 显示特定用户的进程
ps -u user_name
3.3 显示完整进程树
ps -ef
3.4 显示指定PID的进程
ps -p 1234
3.5 自定义输出格式
ps -eo pid,%cpu,%mem,cmd
3.6 查找特定命令的进程
ps aux | grep sshd
3.7 显示所有进程并按CPU使用率排序
ps aux --sort=-%cpu
4. 使用技巧
4.1 结合grep
过滤输出
ps aux | grep httpd
4.2 结合awk
处理输出
ps aux | awk '{print $1, $2}'
4.3 结合top
动态显示进程
top -b -n 1 | grep "Cpu(s)"
4.4 结合head
或tail
查看特定进程
ps aux | sort -k %mem -nr | head -n 10
4.5 使用ps
检查僵尸进程
ps aux | grep Z
4.6 查看系统负载
ps aux | awk '{sum += $3} END {print sum}'