ps 命令速查:Linux/Unix 进程状态查看的完整实战指南

发布时间:2026/9/24 2:27:23
ps 命令速查:Linux/Unix 进程状态查看的完整实战指南 文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载Linux 为我们提供了一个名为ps的实用程序用于查看与系统上的进程相关的信息它是Process Status进程状态的缩写。本文以开源仓库 jaywcjlove/reference 中的 ps 备忘清单 为主体系统讲解ps的三种语法风格、输出字段含义、常用选项组合以及进程树、线程、安全上下文、自定义格式等进阶用法读完即可在实际的服务器排障、进程审计与性能排查中熟练运用。ps 是什么初识进程状态工具ps是 Linux/Unix 系统上最基础也最常用的进程查看命令。它通过读取内核维护的进程表process table快照展示当前系统中进程的运行状态、资源占用、启动方式等信息。与top这类持续刷新的交互式监控工具不同ps是一次性输出当前时刻的进程快照因此非常适合在脚本中调用、与其他命令grep、awk组合完成进程筛选与统计。在本仓库中ps速查表归属于 README.md 的系统工具分类与 find、grep、htop、lsof、netstat、systemd 等命令共同构成日常运维速查体系。基本语法与输出字段语法$ ps [options]不带任何选项直接执行会列出当前 shell 会话中的进程$ ps PID TTY TIME CMD 12330 pts/0 00:00:00 bash 21621 pts/0 00:00:00 ps输出字段含义| 字段 | 含义 | | :-- | -- | |PID| 唯一的进程 IDProcess ID | |TTY| 用户登录的终端类型 | |TIME| 进程运行占用的 CPU 时间以分钟和秒为单位 | |CMD| 启动进程的命令的名称 |注意有时执行ps时TIME列会显示为00:00:00。这并不代表进程没有运行而是说明该进程几乎不消耗 CPU 时间——比如一直处于等待输入/输出的空闲状态CPU 时间只在进程真正占用 CPU 执行指令时才会累加。三种语法风格Unix / BSD / GNUps命令与大多数 Unix 工具不同它同时支持三套语法风格理解这一点是正确使用ps的前提Unix 风格选项可以分组并以单个连字符开头例如ps -ef、ps -auxBSD 风格选项可以分组但前面没有连字符例如ps aux、ps axGNU 风格长选项前面带有双连字符例如ps --sort pmem、ps --forest。不同风格之间选项含义可能存在差异例如-u在 Unix 风格中表示按有效用户筛选在 BSD 风格中表示面向用户的详细格式因此混用时需格外小心。日常使用中最常见的两组等价命令是ps -ef与ps aux它们都能以完整格式列出系统进程但列定义略有不同-ef输出UID PID PPID C STIME TTY TIME CMD而aux输出USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND。常用示例速查表以下选项组合覆盖了ps最高频的使用场景可直接复制使用| Option | Function | | :-- | -- | |ps -ef / -aux| 以完整格式列出当前正在运行的进程 | |ps -ax| 列出当前正在运行的进程 | |ps -u username| 列出特定用户的进程 | |ps -C command| 列出给定命令的进程 | |ps -p PID| 列出具有给定 PID 的进程 | |ps -ppid PPID| 列出具有给定 ppid 的进程 | |pstree| 在层次结构中显示进程 | |ps -L| 列出特定进程的所有线程 | |ps --sort pmem| 按内存占用排序查找内存泄漏 | |ps -eo| 显示安全信息 | |ps T| 仅选择与此终端关联的所有进程 | |ps -U root -u root u| 显示由 root 运行的进程 |查看系统上的每个进程使用标准Unix语法查看系统上的每个进程$ ps -e # 列出所有进程 $ ps -ef # 完整格式列出所有进程 $ ps -eF # 超完整格式额外包含 rss、psr、sched 等信息 $ ps -ely # 长格式 更多列含 NI、RSS、WCHAN 等使用BSD 语法查看系统上的每个进程$ ps ax # 以 BSD 格式列出所有进程 $ ps axu # 以面向用户的格式列出所有进程其中-e与 BSD 风格下的a都表示选择所有进程-f表示完整格式full format-F则是比-f更详细的超完整格式。打印进程树当需要直观了解进程之间的父子派生关系时可以使用进程树输出$ ps -ejH # -e 所有进程-j 任务格式-H 显示层次结构 $ ps axjf # BSD 风格j 任务格式 f 森林式输出进程树的典型应用场景是排查僵尸进程、孤儿进程以及确认某个服务如守护进程派生了哪些子进程。仅打印 PID 42 的名称-o允许自定义输出列配合comm列名后跟等号可同时重命名或隐藏列标题可以做到精准提取$ ps -q 42 -o comm其中-q pid按 PID 快速选择进程-o comm只输出命令名字段且不打印标题行输出结果可直接用于脚本变量赋值例如cmd$(ps -q 42 -o comm)。获取有关线程的信息查看多线程程序如 Java 应用、Nginx worker的线程分布$ ps -eLf # 每个线程一行包含 LWP轻量级进程/线程 ID与 NLWP线程数量 $ ps axms # BSD 风格m 显示线程s 显示信号相关格式-L选项会让每个线程单独占一行输出并额外提供LWP和NLWP列是分析线程数是否泄漏、线程栈分布的重要依据。按用户与组筛选进程列出当前用户拥有的所有进程$ ps xBSD 风格的x会显示包括未绑定终端的进程在内的全部当前用户进程。按有效用户 ID 或名称显示进程有效用户effective user决定进程当前的实际权限$ ps -u user[name or id] # OR $ ps --user user[name or id] $ ps -u root按真实用户 ID 或名称显示进程真实用户real user是启动进程的用户身份$ ps -U user[name or id] # OR $ ps --User user[name or id]按实际组 ID 或名称显示进程$ ps -G group[name or id] # OR $ ps --Group group[name or id]查看以 root 身份运行的每个进程同时指定真实用户与有效用户-U root -u root并以用户友好格式输出$ ps -U root -u root u该命令常被用于安全审计找出系统中所有以 root 权限运行的进程确认是否存在权限异常的守护进程。获取安全信息查看进程的安全上下文SELinux 标签、用户身份标识等信息$ ps -eo euser,ruser,suser,fuser,f,comm,label $ ps axZ # 仅显示安全标签SELinux context $ ps -eM # 显示安全信息含 MAC 标签euser有效用户ruser真实用户suser保存用户setuid 之前的身份fuser文件系统访问用户f进程标志flagslabelSELinux 安全标签形如system_u:system_r:init_t:s0用于强制访问控制MAC的判定。自定义输出格式-o/-O是ps最强大的输出控制手段可以精确指定每列字段、顺序乃至列宽$ ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm $ ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm $ ps -Ao pid,tt,user,fname,tmout,f,wchan字段名后跟:N如wchan:14可以指定该列的固定宽度。常用字段含义| 字段 | 含义 | | :-- | -- | |pid/tid| 进程 ID / 线程 ID | |class/rtprio| 调度类别如 TS、FF/ 实时优先级 | |ni/pri| nice 值 / 内核优先级 | |psr| 进程当前运行的 CPU 编号多核排查 | |pcpu| CPU 使用率百分比 | |stat| 进程状态码 | |wchan| 进程等待的内核函数名阻塞在哪 | |euid/ruid| 有效用户 ID / 真实用户 ID | |tpgid/sess/pgrp| 前台进程组 / 会话 ID / 进程组 ID | |fname/comm| 可执行文件名 / 命令名 | |tmout| 会话超时时间 | |f| 进程标志 |仅打印 syslogd 的进程 ID-C按命令名精确匹配配合-o pid即可提取进程号$ ps -C syslogd -o pid等价于pgrep syslogd输出纯净的 PID 列表适合在脚本中直接用于信号发送或进程清理。输出格式变体显示面向用户的格式$ ps u USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND refs 11400 1.1 0.0 34853544 5816 s025 Ss Tue02PM 0:02.82 /bin/zsh --login refs 34561 0.6 0.0 34822644 3152 s016 S 14Dec22 115:59.28 zsh (figterm) refs 21377 0.5 0.0 34973972 7076 s028 S Wed09AM 4:32.19 zsh (figterm) refs 78881 0.5 0.0 34843484 3256 s015 S 17Dec22 90:27.10 zsh (figterm)%CPU/%MEM是 CPU 与内存占用百分比VSZ是虚拟内存大小RSS是常驻物理内存大小STAT是进程状态码STARTED为进程启动时间。列出具有完整格式的进程$ ps f # 以进程树形式的完整格式输出 $ ps -F # 超完整格式显示虚拟内存格式$ ps vv格式包含MINFLT、MAJFLT缺页中断次数、VSZ、RSS、LIM等与内存管理相关的字段适合做内存行为分析。隐藏 ps 命令输出的标题$ ps h PID TT STAT TIME COMMAND 33790 s000 S 104:10.45 zsh (figterm) 33800 s001 Ss 0:02.76 /bin/zsh --login 77830 s002 S 90:22.51 zsh (figterm) 77840 s003 Ss 0:00.66 /bin/zsh --login无标题输出便于后续用awk/cut等工具直接做列处理无需再跳过首行。显示命令后的环境$ ps e PID TTY STAT TIME COMMAND 886 tty2 Ssl 0:00 /usr/li....e选项会把每个进程的环境变量追加显示在命令之后通常配合-f或截断列宽使用否则输出会非常长可用于排查进程启动时的环境变量注入问题。重复 ps 命令输出的标题行$ ps --headers -A PID TTY TIME CMD 1 ? 00:00:01 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 rcu_gpGNU 长选项--headers会在输出较长、发生分页时重复打印标题行便于阅读超长列表。显示进程树与层次结构GNU 风格下可以使用--forest以 ASCII 树形展示父子关系$ ps --forest -A PID TTY TIME CMD 2 ? 00:00:00 kthreadd 3 ? 00:00:00 \_ rcu_gp 4 ? 00:00:00 \_ rcu_par_gp 960 ? 00:00:00 \_ goa-identity-se 1118 ? 00:00:00 \_ at-spi-bus-laun 1124 ? 00:00:00 | \_ dbus-daemon也可以使用-H选项打印进程层次结构$ ps -H -A PID TTY TIME CMD 2 ? 00:00:00 kthreadd 3 ? 00:00:00 rcu_gp 1832 ? 00:00:37 gnome-terminal- 1840 pts/0 00:00:00 bash 1925 pts/1 00:00:00 bash 2867 pts/1 00:00:00 su 2868 pts/1 00:00:00 bash从示例中可以清晰看到从内核线程kthreadd到gnome-terminal-再到bash、su的完整派生链条这正是排查进程归属与父进程关系的最佳可视化方式。按内存排序查找泄漏进程$ ps --sort pmemGNU 风格的长选项--sort可按指定字段排序pmem表示按物理内存占用百分比升序排列如需降序可在字段前加负号例如ps aux --sort-pmem。这是快速定位内存占用大户、初步判断内存泄漏嫌疑进程的常用手法配合 htop 或 glances 可进一步持续观察内存增长趋势。小结ps虽小却是进程管理的第一入口。掌握其三种语法风格Unix 的-前缀、BSD 的无前缀、GNU 的--长选项、核心选择选项-e、-a、-u、-U、-C、-p、-G、输出格式选项-f、-F、-o、u、v、h、e以及树形展示--forest、-H、-ejH后即可高效完成进程查询、线程分析、安全审计与资源排查。完整的命令速查可随时查阅仓库中的 ps 备忘清单并可结合 lsof查看进程打开的文件、netstat查看端口与连接、systemd服务进程管理构建一整套系统观测工具链。赞分享文档知识库教程开发工具【免费下载链接】reference为开发人员分享快速参考备忘清单(速查表)项目地址https://gitcode.com/jaywcjlove/reference点击查看免费下载相关推荐Quick ReferenceLinux ps 进程状态命令速查清单与实战解析Quick ReferenceLinux ps 进程状态命令速查清单与实战解析 ps Process Status是 Linux/Unix 系统上查看进程文档教程htop 速查指南交互式进程查看器的完整命令、快捷键与实战工作流htop 速查指南交互式进程查看器的完整命令、快捷键与实战工作流 本文基于 reference 速查清单仓库中的 htop 备忘清单 https://link文档教程runc ps 命令完全指南查看容器内进程列表的实现原理与实战用法runc ps 命令完全指南查看容器内进程列表的实现原理与实战用法 导读 runc ps 是 runc 提供的一个轻量级命令用于查看指定容器内正在运行的进程容器运行时云原生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询