我想你需要了解一下ps命令

ps概述

Linux中的ps命令是Process Status的缩写。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等,ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 命令。

参数

-a  显示所有终端机下执行的进程,除了阶段作业领导者之外。
 a  显示现行终端机下的所有进程,包括其他用户的进程。
-A  显示所有进程。
-c  显示CLS和PRI栏位。
 c  列出进程时,显示每个进程真正的指令名称,而不包含路径,参数或常驻服务的标示。
-C<指令名称>  指定执行指令的名称,并列出该指令的进程的状况。
-d  显示所有进程,但不包括阶段作业领导者的进程。
-e  此参数的效果和指定"A"参数相同。
 e  列出进程时,显示每个进程所使用的环境变量。
-f  显示UID,PPIP,C与STIME栏位。
 f  用ASCII字符显示树状结构,表达进程间的相互关系。
-g<群组名称>  此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
 g  显示现行终端机下的所有进程,包括群组领导者的进程。
-G<群组识别码>  列出属于该群组的进程的状况,也可使用群组名称来指定。
 h  不显示标题列。
-H  显示树状结构,表示进程间的相互关系。
-j或j  采用工作控制的格式显示进程状况。
-l或l  采用详细的格式来显示进程状况。
 L  列出栏位的相关信息。
-m或m  显示所有的执行绪。
 n  以数字来表示USER和WCHAN栏位。
-N  显示所有的进程,除了执行ps指令终端机下的进程之外。
-p<进程识别码>  指定进程识别码,并列出该进程的状况。
 p<进程识别码>  此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
 r  只列出现行终端机正在执行中的进程。
-s<阶段作业>  指定阶段作业的进程识别码,并列出隶属该阶段作业的进程的状况。
 s  采用进程信号的格式显示进程状况。
 S  列出进程时,包括已中断的子进程资料。
-t<终端机编号>  指定终端机编号,并列出属于该终端机的进程的状况。
 t<终端机编号>  此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
-T  显示现行终端机下的所有进程。
-u<用户识别码>  此参数的效果和指定"-U"参数相同。
 u  以用户为主的格式来显示进程状况。
-U<用户识别码>  列出属于该用户的进程的状况,也可使用用户名称来指定。
 U<用户名称>  列出属于该用户的进程的状况。
 v  采用虚拟内存的格式显示进程状况。
-V或V  显示版本信息。
-w或w  采用宽阔的格式来显示进程状况。 
 x  显示所有进程,不以终端机来区分。
 X  采用旧式的Linux i386登陆格式显示进程状况。
-y 配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位。

无参数情况下

首先看不加参数执行ps命令会输出什么?
在这里插入图片描述
结果默认会显示4列信息:

PID: 运行着的命令(CMD)的进程编号

TTY: 命令所运行的位置(终端)

TIME: 运行着的该命令所占用的CPU处理时间

CMD: 该进程所运行的命令

直接执行不加任何选项的 ps 命令时,则只显示当前用户会话中打开的进程信息,这些信息在显示时未排序。

显示所有当前进程

可以使用 -a 参数,-a 代表all。同时加上x参数会显示没有控制终端的进程

ps -ax

结果中多出一列是STAT,STAT表示进程的当前状态,在Linux下进程有5种状态:

  1. 运行状态 ( R),正在运行或在运行队列中等待
  2. 睡眠状态(S),休眠中,进程在等待事件的完成
  3. 不可中断睡眠状态(D) ,指的并不是CPU不影响外部硬件中断,而是指进程不影响异步信号。进程通常会等 待IO的结束
  4. 僵尸状态(Z),进程已经终止,但进程的描述符存在,直到父进程调用wait或waitpid系统调用后释放
  5. 停止状态(T),进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号停止运行

其他状态还包括W(无驻留页),<(高优先级进程),N(低优先级进程),L(内存锁页)

在这里插入图片描述

根据进程的用户进行信息过滤

如果要查看特定用户进程的情况,我们可以使用 -u 参数。比如我们要查看用户’hxl’的进程,可以通过下面的命令:

ps -u hxl

在这里插入图片描述

通过cpu和内存使用来过滤进程

如果要按照 CPU 或者内存用量来筛选,我们可以使用 aux 参数,来显示全面的信息。

ps -aux

字段描述:

  USER:启动该进程的用户帐号名称

   %CPU:表示进程的 CPU 占用率

   %MEM:表示进程的内存占用率

   VSZ:表示进程虚拟内存的大小,以 KB 为单位

在这里插入图片描述
默认的结果集是未排好序的。可以通过 --sort命令来排序。下面是根据CPU使用率来升序排序

ps -aux --sort -pcpu


下面是根据内存使用率来升序排序

ps -aux --sort -pmem

通过进程名进行过滤

比如要找tomcat的进程的信息,可以使用下面的命令:

ps -ef |grep tomcat --color   //查找到tomcat进程,并用颜色标识

在这里插入图片描述
找到之后我们可以使用kill -9 pid强制把他杀死。

树形的显示进程

有时候我们希望以树形结构显示进程,可以使用 -axjf 参数。或者可以使用另一个命令,pstree

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章