ps命令学习

转自:https://www.cnblogs.com/peida/archive/2012/12/19/2824418.html

https://www.jianshu.com/p/943b90150c10

1.简介

ps命令是Process Status的缩写。

ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

区别是:ps是一次性查看,top是长时间的观察进程的变化,是动态连续的。

运行一次ps命令结果如下:

  PID TTY          TIME CMD
18313 pts/0    00:00:00 bash
18347 pts/0    00:00:00 ps

不加任何参数输出上面,而且每次结果不同,(是当前用户目前运行的进程?),默认输出的是四列

1.1 参数格式

ps命令支持三种使用的语法格式:

  • UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符;
  • BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符;
  • GNU 风格的选项,选项前有两个“-”连字符;
而加不加-有很大的区别。
ps -a  显示所有终端下执行的进程,包含其他用户的进程
ps -A  显示所有进程
ps -e  和-A功能一样
ps -H  显示树状结构,表示程序间的相互关系
ps -f  全格式显示进程

ps a   显示当前终端下执行的进程
ps c   显示进程的真实名称
ps e   列出程序所使用的环境变量
ps f   用ASCII字符显示树状结构,表达程序间的相互关系
ps x   显示所有进程,无论是否运行在终端上
ps u   显示用户相关的进程或者与用户相关的属性
ps r   只显示正在运行的进程

2.用法

2.1 ps -u username 

查看指定用户的进程信息,通过用户过滤进程信息:

通过管道和less命令连接起来,使得查看更加简洁

ps -u root |less

 

 

 解释:

  • PID: 该进程的id
  • TTY:登入者的终端机位置
  • TIME:占用CPU的时间
  • CMD:命令(产生当前进程的命令)

2.2 ps -aux

列出目前所有的正在内存当中的程序:

 

 

命令参数解释:

  • a  显示所有进程、-a 显示同一终端下的所有程序
  • u  指定用户的所有进程
  • x调整输出格式

输出解释:

  • %CPU:该 process 使用掉的 CPU 资源百分比
  • %MEM:该 process 所占用的物理内存百分比
  • VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  • RSS :该 process 占用的固定的内存量 (Kbytes)
  • STAT:该程序目前的状态,主要的状态有:D:不可中断(等待磁盘IO)、R运行、S中断(等待调用)、T停止、Z僵死。其中<表示优先级高的进程
  • TIME :该 process 实际使用 CPU 运作的时间

2.3 ps -ef

 

 

 输出了进程所属的UID、父进程PID

2.4 ps -l

将属于本用户本次登入PID用到的相关信息展示出来:

 

 

  •  F表示程序的旗标 (flag), 4 代表使用者为 super user
  • S程序的状态 (STAT),D:不可中断、R运行、S中断、T停止、Z僵死
  • C:CPU 使用的资源百分比
  • PRI 是 Priority (优先执行序) 的缩写,进程的优先级
  • NI 是 Nice 值
  • ADDR 是 kernel function,指出该程序在内存的哪个部分。
  • SZ 使用掉的内存大小
  • WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作

3.其他

3.1 查看进程运行时间

ps -p PID -o lstart,etime

通过控制输出-o

3.2 与sort连用

ps -aux --sort -%cpu | less

按照占用cpu的降序排列。

--sort=[+|-] key

按内存降序:

$ ps -aux --sort -%mem | less

3.3 根据进程查看线程

ps -L PID

3.4 与watch动态观察

watch -n 1 'ps -aux --sort -%mem | head 10'

1s刷新一次

 

posted @ 2021-02-17 20:24  lypbendlf  阅读(172)  评论(0编辑  收藏  举报