进程查看 ps

ps 命令用于查看系统中的进程信息。它能显示进程 ID、运行状态、CPU 和内存使用情况等,是进程管理的基础工具。

基本用法

查看当前终端的进程:

ps

输出示例:

  PID TTY          TIME CMD
 1234 pts/0    00:00:00 bash
 5678 pts/0    00:00:00 ps

常用选项

ps 的选项很多,常用的组合:

选项含义
-e显示所有进程
-f完整格式输出
-u显示用户信息
-a显示所有终端的进程
-x显示无终端的进程
-o自定义输出格式

查看所有进程

ps -ef
ps aux

ps -ef 是 System V 风格,ps aux 是 BSD 风格,两者都显示所有进程,格式略有不同。

ps aux 输出示例:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 169424 11200 ?        Ss   Mar01   0:05 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Mar01   0:00 [kthreadd]
user      1234  0.0  0.2 123456 20480 pts/0    Ss   10:00   0:00 -bash

字段含义:

字段含义
USER进程所有者
PID进程 ID
%CPUCPU 使用率
%MEM内存使用率
VSZ虚拟内存大小
RSS物理内存大小
TTY终端
STAT进程状态
START启动时间
TIME累计 CPU 时间
COMMAND命令

进程状态

STAT 列显示进程状态:

状态含义
D不可中断睡眠
I空闲
R运行或就绪
S可中断睡眠
T停止
Z僵尸进程

附加标志:

标志含义
<高优先级
N低优先级
L有锁定的页面
s会话领导者
l多线程
+前台进程组

查找特定进程

按名称查找

ps -ef | grep nginx
ps aux | grep python

pgrep 命令

pgrep 直接按名称查找进程 ID:

pgrep nginx
pgrep -l nginx
pgrep -u root nginx

-l 显示进程名,-u 按用户过滤。

按用户查找

ps -u root
ps -u username

按 PID 查找

ps -p 1234
ps -p 1234,5678

自定义输出格式

-o 选项自定义输出列:

ps -eo pid,ppid,user,%cpu,%mem,cmd
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

常用列名:

列名含义
pid进程 ID
ppid父进程 ID
user用户
%cpuCPU 使用率
%mem内存使用率
cmd命令
stat状态
start启动时间
etime运行时长

按资源使用排序

按 CPU 排序

ps aux --sort=-%cpu | head -10

按内存排序

ps aux --sort=-%mem | head -10

- 表示降序,不加表示升序。

进程树

pstree 以树形结构显示进程:

pstree
pstree -p
pstree -u

-p 显示 PID,-u 显示用户。

实时监控

top 命令提供动态实时监控:

top
top -u username
top -p 1234

常用快捷键:

快捷键功能
q退出
h帮助
P按 CPU 排序
M按内存排序
k终止进程
1显示各 CPU 核心

htop 是 top 的增强版,更直观友好:

htop

实用示例

查找占用 CPU 最高的进程

ps aux --sort=-%cpu | head -5

查找占用内存最高的进程

ps aux --sort=-%mem | head -5

查看某用户的所有进程

ps -u www-data
ps aux | grep www-data

查看进程的线程

ps -eLf | grep java
ps -T -p 1234

查看进程的完整命令

ps -ef --width 500
ps auxww

ww 不截断命令行。

统计进程数量

ps aux | wc -l
ps -e | wc -l

小结

  • ps 查看进程信息,ps auxps -ef 最常用
  • STAT 列显示进程状态,R 运行,S 睡眠,Z 僵尸
  • --sort 可以按 CPU 或内存排序
  • pgrep 按名称查找进程 ID
  • pstree 显示进程树
  • top 和 htop 提供实时监控