Linux ps 进程查看命令详解

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,无需管道过滤。
相关推荐
GeW20 分钟前
高端化走到深处,是数据库和Linux的事
linux
程序员初一1 小时前
Linux 远程桌面有四种做法
linux·ssh
爱吃奥利奥_wen2 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
程序开发阿元2 小时前
1C1G 能跑什么:把留常驻服务和不留摆进一张内存表
linux·ssh
xbzb4 小时前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
Android系统攻城狮4 小时前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
独隅5 小时前
WebStorm Linux 版安装实战与核心效能展示
linux·ide·webstorm
瑞克-桑切斯6 小时前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
江屿风6 小时前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制
我不会起名字3227 小时前
K8s 节点磁盘打满导致 Pod 被驱逐:4 类占用与回收顺序
运维·kubernetes·k8s·diskpressure·evicted