博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一天一个shell命令】好管家-进程-ps
阅读量:5813 次
发布时间:2019-06-18

本文共 3088 字,大约阅读时间需要 10 分钟。

小知识(以ps为例):

 查看命令路径  which ps 
 命令帮助 ps --help
 命令完全手册: man ps

说明

ps全称是:Process Status (进程状态),他就是提供进程信息的。

附知识说明

我们经常见到shell命令有三种类型的参数,最初我还琢磨 单划线和双划线有什么特殊的含义,原来是一个版本演变留下的问题。

linux系统中常见的3种命令行参数(以ps为例)

Unix类型的参数,前面有一短划线 如:ps -e
BSD类型的参数,前面没有短划线  如:ps  a
GNU长参数,前面有双划线 如:ps --deselect

所以,ps –a 和 ps  a查询结果会不同

常见实例

 
  1. $ps 

如图:

解释:默认情况,ps命令只显示属于当前用户并正在当前终端中运行的进程。默认ps的话,只运行了bash 和 ps

 
  1. $ps –ef 

如图:

解释:

UID 拥有进程的用户

PID 进程的ID

PPID 父进程PID

C 进程存续期的处理利用率

STIME 进程启动时的系统时间

TTY 进程所属的终端

TIME  运行进程累计CPU时间

CMD 启动进程的名称

帮助文档

这回我用的是redhat的--help, 得到ps的help被分为五类:

simple selection  简易选项

********* simple selection ********* 

-A all processes    所有线程              
-N negate selection   忽略选择            
-a all w/ tty except session leaders 显示一个终端的所有进程,除了会话引线 
-d all except session leaders     显示所有进程,但省略所有的会话引线(utility)  
-e all processes               
T  all processes on this terminal   
a  all w/ tty, including other users 
g  OBSOLETE -- DO NOT USE          
r  only running processes        
x  processes w/o controlling ttys

selection by list  列表选项

********* selection by list ********* 

-C by command name 
-G by real group ID (supports names) 
-U by real user ID (supports names) 
-g by session OR by effective group name 
-p by process ID 
-s processes in the sessions given 
-t by tty 
-u by effective user ID (supports names) 
U  processes for specified users 
t  by tty

output format  输出格式化

*********** output format **********  

-o,o user-defined   可以输入自己的参数
-f full           
-j,j job control  
s  signal          
-O,O preloaded
-o  v  virtual memory  
-l,l long         
u  user-oriented   
-F   extra full   
X  registers   

long options  长操作类型

*********** long options *********** 

--Group  --User  --pid  --cols  --ppid 
--group  --user  --sid  --rows  --info 
--cumulative  --format  --deselect 
--sort  --tty  --forest  --version 
--heading  --no-heading  --context

misc options 其他选项

********* misc options *********

-V,V  show version      L  list format codes   f  ASCII art forest 

-m,m,-L,-T,H  threads   S  children in sum    -y change -l format 
-M,Z  security data     c  true command name  -c scheduling class 
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy


实例(来自man ps)

1. 查看系统每个进程的标准参数(To see every process on the system using standard syntax)

 
  1. $ps -e     
  2. $ps -ef   
  3. $ps -eF   
  4. $ps –ely 

2. 查看系统每个进程的BSD(系统名)参数(To see every process on the system using BSD syntax)

 
  1. $ps ax   
  2. $ps axu 

3. 打印进程树(To print a process tree)

 
  1. $ps -ejH   
  2. $ps axjf 

4. 打印线程的有关信息

 
  1. $ps -eLf   
  2. $ps axms 

5. 获取安全信息

 
  1. $ps -eo euser,ruser,suser,fuser,f,comm,label   
  2. $ps axZ   
  3. $ps –eM 

6. 要查看每个进程运行在用户根目录(真实的和有效的ID)格式

 
  1. $ps -U root -u root u 

7. 查看用户自定义的格式(To see every process with a user-defined format)

 
  1. $ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm   
  2. $ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm   
  3. $ps -eopid,tt,user,fname,tmout,f,wchan 

8. 仅仅打印系统日志的进程ID(Print only the process IDs of syslogd)

 
  1. $ps -C syslogd -o pid

9. 仅仅打印pid=42的name(Print only the name of PID 42)

 
  1. $ps -p 42 -o comm=

10. 实用  以(7)为例,按照自定义格式看cpu信息

 
  1. $ps -eo comm,pcpu | head 

附: -0的参数目录

参数 描述
pcpu CPU占用率
pid 进程ID
ppid 父进程ID
pmem 内存使用率
comm 可执行文件
cmd 简单命令(simple command)
user 启动进程的用户
nice 优先级(niceness)
time 累计的CPU时间
etime 进程启动后累计时间
tty 当前终端进程
euid 有效用户ID
stat 进程状态
本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/yjplxq/1034687,如需转载请自行联系原作者
你可能感兴趣的文章
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
关于XMLHttpRequest状态的讨论及处理方法
查看>>
【总结整理】display、visibility、overflow的隐藏问题
查看>>
[摘录]第9章 解密优势谈判高手
查看>>
模糊查询
查看>>
安装Percona-pmm-server感触
查看>>
C#面向对象中类的继承和扫描顺序和接口
查看>>
PHP设置时区的方法
查看>>
MyQThread
查看>>
面试学到的css布局,细节影响了我的面试成绩
查看>>
Codeforces Round #457 (Div. 2)
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
ffmpeg 视频过度滤镜 gltransition
查看>>
OpenCL32 for mingw
查看>>
【java】值传递和引用传递---对象作为方法的参数传入属于哪种传递
查看>>
二维码扫描&集合排序
查看>>
使用Intent Activity之间传值
查看>>
JAVA 线程 开启线程 一个类里只开…
查看>>
poj 1056 IMMEDIATE DECODABILITY
查看>>