当前位置:首页>Linux>Linux基础 | ps命令详解,进程查看必会工具

Linux基础 | ps命令详解,进程查看必会工具

  • 2026-10-21 13:27:59
Linux基础 | ps命令详解,进程查看必会工具

在 Linux 世界里,有一句很真实的话:不会看进程,就不会排故障。无论是服务器卡顿、CPU 飙高,还是服务“看起来还在,其实已经不工作了”,最终都绕不开一个问题:进程现在到底在干什么?而ps,正是Linux下最基础、也是最核心的进程查看工具之一。

今天这篇文章,我们就系统讲清楚:ps 是什么、怎么看、以及如何在真实场景中用它定位问题。

一、ps 是什么?

ps 是Process Status的缩写,用于显示当前系统中的进程状态。
与 top、htop 不同,ps 的特点是:
  • 输出的是某一时刻的进程快照
  • 非实时刷新
  • 非常适合脚本和分析
一句话总结:top 用来看“变化”,ps 用来看“现状”。

二、最常见的三种 ps 用法

ps 的参数风格比较“古老”,主要有三种写法,实际工作中最常见的是下面这几种。

1. 查看当前终端的进程

ps
通常只能看到当前 shell 相关的进程,用途有限。

2. 查看当前用户的所有进程

ps x
常用于查看“我自己启动了哪些程序”。

3. 查看系统所有进程(最常用)

ps aux
这是最经典、最常被问到的一条命令。
参数含义:
a:显示所有用户的进程
u:以用户为中心的格式显示
x:包括没有控制终端的进程

三、读懂 ps aux 的输出

ps aux
你会看到类似下面的输出:
几个必须理解的字段:
PID:进程 ID
%CPU:CPU 占用率
%MEM:内存占用率
VSZ:虚拟内存大小
RSS:实际物理内存
STAT:进程状态
COMMAND:启动命令

STAT 状态速查

常见状态字母:

R:运行中

S:睡眠(最常见)

D:不可中断睡眠(可能在等 IO)

Z:僵尸进程

T:暂停

如果你看到大量 D 或 Z,通常意味着系统有问题。

四、按条件过滤进程

1. 按进程名查找

ps aux | grep nginx
这是排查服务是否存在的经典组合。
注意:
grep 本身也会被匹配到, 使用技巧看这里 Linux基础|grep: 文本查找的第一利器
实际场景中通常配合 grep -v grep

2. 查看某个 PID 的详细信息

ps -p 1234
或者指定输出字段:
ps -p 1234 -o pid,ppid,%cpu,%mem,cmd
这在定位“单个异常进程”时非常有用。

五、父子进程关系查看

1. 查看进程树

ps -ef --forest
你可以直观看到:
  • 谁启动了谁
  • 子进程是否异常增多

2. 查看某个进程的父进程

ps -o pid,ppid,cmd -p 1234
如果父进程已经退出,而子进程还在,很可能是异常状态。

六、常见实战场景

场景一:服务器 CPU 很高

ps aux --sort=-%cpu | head
快速找出最耗 CPU 的进程。

场景二:内存不够用

ps aux --sort=-%mem | head
定位内存“吃得最凶”的进程。

场景三:服务启动失败但进程还在

ps aux | grep 服务名
确认进程是否真的存在,还是“假存活”。

七、ps 与 top 的关系

对比项
ps
top
是否实时
否
是
适合脚本
非常适合
不适合
学习成本
较低
略高
常用场景
分析、排查
监控
实际工作中,ps 和 top 是搭配使用的。

八、写在最后

如果你刚开始学 Linux,关于 ps 命令,记住下面几条就够了:
ps aux
ps aux | grep 进程名
ps aux --sort=-%cpu
ps -p PID -o pid,ppid,cmd
ps 不复杂,但它背后代表的是进程、资源和系统运行状态的基本认知。
把 ps 用熟,你离真正理解 Linux,又近了一步。
如果这篇文章对你有帮助,欢迎关注、点赞、收藏、转发,我们下篇继续聊 Linux 基础。

最新文章

随机文章