您的位置:首页 > 运维架构 > Shell

【一天一个shell命令】好管家-进程-ps

2012-10-23 17:05 369 查看
小知识(以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查询结果会不同

常见实例

$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

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

$ps ax
$ps axu

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

$ps -ejH
$ps axjf

4. 打印线程的有关信息

$ps -eLf
$ps axms

5. 获取安全信息

$ps -eo euser,ruser,suser,fuser,f,comm,label
$ps axZ
$ps –eM

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

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的参数目录

参数描述
pcpuCPU占用率
pid进程ID
ppid父进程ID
pmem内存使用率
comm可执行文件
cmd简单命令(simple command)
user启动进程的用户
nice优先级(niceness)
time累计的CPU时间
etime进程启动后累计时间
tty当前终端进程
euid有效用户ID
stat进程状态
本文出自 “书生” 博客,请务必保留此出处http://yjplxq.blog.51cto.com/4081353/1034687
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: