找回密码
 立即注册
查看: 64|回复: 1

Linux ps命令深度解析与使用指南

[复制链接]

58

主题

161

回帖

1324

积分

超级版主

积分
1324
发表于 2025-5-20 17:43:08 | 显示全部楼层 |阅读模式
ps 命令是 Linux 中用于查看进程状态的核心工具,支持丰富的选项和输出格式。以下是对其功能的深度解析:

一、基础用法
ps              # 显示当前用户在当前终端启动的进程(仅包含基础信息)。
ps aux       # 查看所有用户进程,常用组合:a=所有用户,u=详细信息,x=包含无终端的进程
ps -ef       # 查看所有进程,-e=所有进程,-f=全格式

关键参数:
-a 显示所有终端关联的进程
-u 显示进程所有者及资源占用
-x 显示无控制终端的进程(如守护进程)
-e 显示所有进程(等同于-A)
-f 完整格式输出(含PPID、启动时间)
-o 自定义输出字段


二、输出列解析
pid:进程ID
ppid:父进程ID
user:进程所有者
%cpu:CPU占用百分比
%mem:内存占用百分比
rss:物理内存占用(KB)
vsz:虚拟内存占用(KB)
stat:进程状态(如S=休眠,R=运行)
cmd:完整命令行

STAT 进程状态
R:运行中或可运行
S:可中断休眠(等待事件)
D:不可中断休眠(通常为 I/O 操作)
Z:僵尸进程(已终止但未被父进程回收)
T:暂停状态(如 Ctrl+Z 暂停的进程)
<:高优先级进程
N:低优先级进程
s:会话领导者(Session Leader)
+:位于前台进程组
l:多线程进程

三、筛选进程
按进程名过滤
ps -C nginx         # 显示名为 "nginx" 的进程
ps -ef | grep java  # 结合 grep 过滤(需注意排除 grep 自身)

按用户过滤
ps -u root      # 显示 root 用户的进程(BSD 风格)
ps -U www-data  # 显示指定用户的进程(Unix 风格)

按 PID/PPID 过滤
ps -p 1234       # 显示 PID 为 1234 的进程
ps --ppid 567    # 显示 PPID 为 567 的子进程

四、高级用法自定义输出格式
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head  # 按内存降序排列
-o 指定输出列(如 %cpu, %mem, lstart(启动时间)等)

显示线程信息
ps -eLf        # 显示所有线程(LWP=线程ID,NLWP=线程数)
ps -T -p 1234  # 查看 PID 1234 的所有线程

进程树视图
ps axjf   # 显示进程树(Unix 风格)
ps --forest  # 树状结构(BSD 风格)

五、组合命令示例
查找占用 CPU 最高的进程
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 10

统计进程数量
ps -e | wc -l  # 统计系统总进程数

检查僵尸进程
ps aux | grep 'Z'  # 筛选状态为 Z 的进程

掌握 ps 命令的灵活使用,能快速诊断系统状态、定位资源占用问题,是 Linux 系统管理的必备技能。







非凡云致力于提供高品质、高性价比的云服务产品

7

主题

92

回帖

3998

积分

论坛元老

积分
3998
发表于 2025-5-21 09:36:34 | 显示全部楼层
好东西 学习了

8

主题

9

回帖

109

积分

注册会员

积分
109
发表于 2025-5-22 09:20:08
+1

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|非凡云交流社区 ( 蜀ICP备2023029164号-2 )

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表