网站首页 > 技术文章 正文
ps:ps 即 process state,可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关 信息均保存在/proc/PID目录下的各文件中。
一、语法
ps [OPTION]...
二、常用选项
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k|--sort 属性 对属性排序,属性前加 - 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
-C cmdlist 指定命令,多个命令用,分隔
-L 显示线程
-e 显示所有进程,相当于-A
-f 显示完整格式程序信息
-F 显示更完整格式的进程信息
-H 以进程层级格式显示进程相关信息
-u userlist 指定有效的用户ID或名称
-U userlist 指定真正的用户ID或名称
-g gid或groupname 指定有效的gid或组名称
-G gid或groupname 指定真正的gid或组名称
-p pid 显示指pid的进程
--ppid pid 显示属于pid的子进程
-t ttylist 指定tty,相当于 t
-M 显示SELinux信息,相当于Z
三、ps 输出属性
C : ps -ef 显示列 C 表示cpu利用率
VSZ: Virtual memory SiZe,虚拟内存集,线性内存
RSS: ReSident Size, 常驻内存集
STAT:进程状态
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
L:内存分页并带锁
N:低优先级进程
<: 高优先级进程
s: session leader,会话(子进程)发起者
I:Idle kernel thread,CentOS 8 新特性
ni: nice值
pri: priority 优先级
rtprio: 实时优先级
psr: processor CPU编号
四、示例
- 查看指定进程:
ps -p 1234
- 按名称过滤进程:
ps -ef | grep nginx
- 查看内存占用最高的前几名:
ps -eo pid,cmd,%mem --sort=-%mem | head
- 查看所有进程:
ps aux
- 按 CPU 使用排序:
ps aux --sort=-%cpu | head
- 查找僵尸进程:
ps aux | awk '$8 ~ /Z/ { print $0 }'
- 显示指定用户的进程:
ps aux | grep "^username"
五、总结
ps 是一个用于查看和管理系统中运行进程的重要工具,可以说是必备工具。它主要应用于以下场景:
- 查看进程信息:
快速了解当前运行的进程,获取进程的基本信息(如 PID、用户、CPU 和内存使用率)。 - 监控系统资源:
排查高 CPU 或内存使用的进程,辅助性能调优和问题诊断。 - 管理进程:
查找需要操作的特定进程,结合其他命令(如 kill)对进程进行管理。 - 调试和排错:
检查僵尸进程、后台服务状态,定位异常进程或失控程序。 - 定制化显示:
按需过滤或排序进程信息,适配各种系统管理需求。
核心理念:
ps 是静态的,只显示命令运行瞬间的快照。如果需要动态监控进程,结合 top 或 htop 使用。
"码字不易!喜欢就点个赞吧,你的支持是我继续分享的动力!"
猜你喜欢
- 2025-06-15 企业版Java核心概要简介(java企业版本)
- 2025-06-15 Linux内核设计与实现—进程管理(linux内核进程和用户进程)
- 2025-06-15 linux之进程相关(linux进程详解)
- 2025-06-15 树莓派搭建syncthing同步文件(树莓派配置文件)
- 2025-06-15 MySQL主从复制问题总结及排查过程分享
- 2025-06-15 zk源码—5.请求的处理过程二(请求原理)
- 2025-06-15 告别付费音乐?Navidrome:打造你的专属音乐宇宙
- 2025-06-15 运维从头到尾安装日志服务器,看这一篇就够了
- 2025-06-15 神奇的Java僵尸(defunct)进程问题排查过程
- 2025-06-15 一个小实验巩固下进程管理(三年级四单元作文我做了一个小实验)
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)