Linux ps 进程查看命令详解
这两个是 Linux 运维中最经典、最常用 的进程排查命令,核心是通过 ps 全量查询 + grep 精准过滤,快速定位目标服务进程。
1. 命令逐段拆解
① ps -ef | grep java
表格
| 命令 / 参数 | 英文全称 | 作用说明 |
|---|---|---|
ps |
Process Status | 系统进程状态查看工具,用于列出当前运行的所有进程 |
-e |
every / all | 显示系统中所有进程(包含所有用户、所有终端的进程) |
-f |
full format | 以完整格式输出,包含 UID、PID、PPID、启动时间、完整命令等全量信息 |
| ` | ` | pipe(管道符) |
grep java |
Global Regular Expression Print | 从全量进程中,过滤出包含 java 关键字的进程,即所有 Java 应用进程(如 Tomcat、SpringBoot) |
② ps aux | grep tomcat
表格
| 命令 / 参数 | 英文全称 | 作用说明 |
|---|---|---|
a |
all users | 显示所有用户的进程(默认仅显示当前用户) |
u |
user-oriented | 以面向用户的格式输出,重点展示 CPU、内存占用率等资源指标 |
x |
without tty | 显示无控制终端的进程(如后台守护进程) |
grep tomcat |
同上 | 过滤出包含 tomcat 关键字的进程,精准定位 Tomcat 服务 |
2. 核心区别与适用场景
表格
| 特性 | ps -ef |
ps aux |
|---|---|---|
| 核心输出 | 进程父子关系(PPID)、完整启动命令、启动时间 | CPU 使用率 (% CPU)、内存使用率 (% MEM)、进程状态 (STAT) |
| 适用场景 | 排查进程依赖、根据 PID 终止进程、追溯父进程 | 监控服务资源占用、排查内存 / CPU 飙高问题 |
| 标准来源 | POSIX 标准(兼容性更强,所有 Unix/Linux 系统通用) | BSD 风格(Linux 系统常用,输出更直观) |
3. 输出字段详解(关键信息)
ps -ef 核心字段
表格
| 字段 | 含义 |
|---|---|
| UID | 进程所属用户 ID |
| PID | 进程 ID(唯一标识,用于 kill 终止进程) |
| PPID | 父进程 ID(用于追溯进程来源) |
| C | CPU 占用率 |
| STIME | 进程启动时间 |
| CMD | 完整启动命令(可看到程序路径、参数) |
ps aux 核心字段
表格
| 字段 | 含义 |
|---|---|
| USER | 进程所属用户名 |
| PID | 进程 ID |
| %CPU | CPU 使用率 |
| %MEM | 物理内存使用率 |
| VSZ | 虚拟内存大小 |
| RSS | 常驻内存大小(实际占用物理内存) |
| STAT | 进程状态(R 运行、S 睡眠、Z 僵尸等) |
4. 进阶优化用法(避坑 + 提效)
① 排除 grep 自身进程
直接执行命令会匹配到 grep java 这个临时进程,可通过正则排除:
bash
运行
ps -ef | grep [j]ava
ps aux | grep [t]omcat
原理:[j]ava 是正则表达式,仅匹配 java,不匹配 grep 命令中的 [j]ava,从而过滤掉自身。
② 结合 awk 提取 PID(一键杀进程)
# 提取 Java 进程 PID 并终止
ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
grep -v grep:排除grep进程
-v = invert match 中文意思:反向匹配 / 排除 / 取反
awk '{print $2}':提取第 2 列(PID)xargs kill -9:批量强制终止进程
③ 实时监控进程
ps 是静态快照,如需实时监控,可搭配 top:
bash
运行
top -p <PID> # 实时监控指定 PID 的资源占用
5. 补充说明
- Tomcat 本质是 Java 进程 :
ps aux | grep tomcat能查到,是因为 Tomcat 启动命令中包含tomcat关键字;如果是 SpringBoot 等无tomcat关键字的 Java 服务,需用grep java查找。 - 权限问题 :普通用户仅能查看自己的进程,
root用户可查看所有进程。 - 替代工具 :现代系统也常用
pgrep java直接获取 Java 进程 PID,无需管道过滤。