ps的-o选项就是把让ps格式化输出ps你想要的信息,比如只想输出进程的pid、CPU占用率和进程执行命令这三个信息怎么办,你当然可以ps aux全部输出然后切割输出,但是ps的-o选项可以让你很方便的满足上面的需求
首先看一下ps的输出有那些选项
使用命令:ps aux
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟内存大小(Kbytes)
RSS: 占用的内存大小(Kbytes)
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态,参数意义如下:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
n 低优先级
s 包含子进程
+ 位于后台的进程组
START: 行程开始时间
TIME: 进程使用掉CPU的时间
COMMAND(args等同):所执行的指令
以上的都可以做为ps的-o后面的参数吗,好了,如果想满足才开始的那个需求,你需要这么写:
#ps -eo pid,%cpu,command
注:command还可以用args代替,一样的意思
如果下图的只想显示进程名,而不是全部的执行命令怎么办,把command换成comm试试
换成comm后的输出结果
如果想列出所有的进程属用户、pid、使用内存大小、进程名,可以写为:
#ps -eo user,pid,rss,comm
如果想按照使用内存大小排序,用--sort参数
#ps -eo user,pid,rss,comm --sort rss
如果想看一个进程的启动时间,可以用lstat来看
#ps -o lstart,comm -p 27314
-p后面跟进程的Pid
如果想看一个进程的运行时间,可以用etime
#ps -o lstart,etime,comm -p squid进程号
第一个红框是启动时间:2014年4月26号 4点34分
第二个红框是启动总时长:72天5小时24分钟21秒
如果想要一个进程的使用内存大小,pid是实时获取,可以用pidof
看到输出结果好多余了一行备注信息,如果不想要RSS,只想要内存信息,用h参数,h参数的意思是忽略标题
OK!
转载于:https://blog.51cto.com/fantefei/1425304