小知识(以ps为例):
查看命令路径 which ps
命令帮助 ps --help
命令完全手册: man ps
说明
ps全称是:Process Status (进程状态),他就是提供进程信息的。
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
附知识说明
我们经常见到shell命令有三种类型的参数,最初我还琢磨 单划线和双划线有什么特殊的含义,原来是一个版本演变留下的问题。
linux系统中常见的3种命令行参数(以ps为例):
Unix类型的参数,前面有一短划线 如:ps -e
BSD类型的参数,前面没有短划线 如:ps a
GNU长参数,前面有双划线 如:ps --deselect
所以,ps –a 和 ps a查询结果会不同
常见实例
$ps
如图:

解释:默认情况,ps命令只显示属于当前用户并正在当前终端中运行的进程。默认ps的话,只运行了bash 和 ps
$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)
$ps -e
$ps -ef
$ps -eF
$ps –ely
</div>
2. 查看系统每个进程的BSD(系统名)参数(To see every process on the system using BSD syntax)
$ps ax
$ps axu
</div>
3. 打印进程树(To print a process tree)
$ps -ejH
$ps axjf
</div>
4. 打印线程的有关信息
$ps -eLf
$ps axms
</div>
5. 获取安全信息
$ps -eo euser,ruser,suser,fuser,f,comm,label
$ps axZ
$ps –eM
</div>
6. 要查看每个进程运行在用户根目录(真实的和有效的ID)格式
$ps -U root -u root u
7. 查看用户自定义的格式(To see every process with a user-defined format)
$ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
$ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
$ps -eopid,tt,user,fname,tmout,f,wchan
</div>
8. 仅仅打印系统日志的进程ID(Print only the process IDs of syslogd)
$ps -C syslogd -o pid=
9. 仅仅打印pid=42的name(Print only the name of PID 42)
$ps -p 42 -o comm=
10. 实用 以(7)为例,按照自定义格式看cpu信息
$ps -eo comm,pcpu | head

附: -0的参数目录
| 参数 | 描述 |
| pcpu | CPU占用率 |
| pid | 进程ID |
| ppid |

