linux ps命令详解

ps命令(全称:process status)是linux查看当前系统中进程状态的常用命令,比如我们可以通过以下命令查看当前系统所有进程信息:

ps -aux

执行结果如下:

如果查看指定的进程,如java进程,可以通过管道符和grep命令进行过滤,命令如下:

ps -aux|grep java

执行结果如下:

 ps命令详细介绍

ps命令的用法如下:

ps [options]

options表示命令参数,详细的参数列表如下:

-A 显示所有进程(等价于-e)
-a 显示一个终端的所有进程,除了会话引线
-e 显示所有进程(等价于-A)
-N 忽略选择
-d 显示所有进程,但省略所有的会话引线
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程
U username 显示该用户下的所有进程,且显示各个命令的详细路径,如:ps U admin;ps -fU root
-f  全部列出,通常和其他选项联用
-l  长格式(有F,wchan,C 等字段)
-j  作业格式
-o 用户自定义格式
v   以虚拟存储器格式显示
s   以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)
e   命令之后显示环境
h   不显示第一行
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本信息

针对STAT(进程当前状态)的描述如下:

D  无法中断的休眠状态(通常 IO 的进程)
R  正在运行可中在队列中可过行的
S  处于休眠状态
T  停止或被追踪
W 进入内存交换 (从内核2.6开始无效)
X  死掉的进程 (基本很少见)
Z  僵尸进程
<  优先级高的进程
N  优先级较低的进程
L 有些页被锁进内存
s  进程的领导者(在它之下有子进程)
l  多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
+  位于后台的进程组

 实例操作

1. 杀掉java进程(慎用)

#查看java进程
ps -aux|grep java
#获取java进程号,如55555,通过kill命令关闭进程(-9表示强制关闭)
kill -9 55555

是不是觉得很麻烦,那么就用一个命令表达式来完成上面的功能

#要确保当前系统只有一个java进程,防止误杀
ps -uax|grep java|awk '{print $2}'|xargs kill -9

 2. 查看cpu占用率前10的进程

#这里head命令后的11,包含第1行的列信息
ps -aux --sort=-pcpu|head -11

 

 

posted on 2021-02-09 15:09  阿泰555  阅读(14399)  评论(0编辑  收藏  举报

导航