ps, top, pstree

本文介绍了如何使用ps、top和pstree等命令查看Linux系统中进程的状态和相关信息,包括PID、TTY、TIME、CMD等,并解释了不同状态的含义。

ps

查看当前终端所启动的进程, 不加选项只查看当前终端的进程

PID         TTY     TIME        CMD         
2398        pts/1   00:00:00    bash 
3625        pts/1   00:00:00    ps 
#PID    : Process ID,是进程的唯一标识, 虽然是int 但是从0开始使用, OS使用延迟重用算法来分配进程的编号, 从而保证任意时刻进程号都是唯一的(对OS来说是唯一的,eg: 连续执行两次同一个a.out,也是两个进程,有PID1.PID2,  所以一定不能把刚刚使用过的PID号PID1给新的进程,否则OS就不知道是之前的没关还是新的刚创建)
#TTY    :终端的次要装置号码,tetetype, 用来表示终端类型
#TIME   :消耗cpu的时间 
#CMD    :命令,即进程名

ps aux

查看所有进程,ps aux是BSD syntax,ps -aux是standard syntax, 但二者的意义完全不同=>$man ps

$ps aux | more      #输出的太多, 把$ps aux执行的结果交给$more, =>回车翻一行,空格翻一页, q退出
USER    PID     %CPU    %MEM    VSZ     RSS     TTY STAT    START   TIME    COMMAND 
root    1       0.0     0.0     3740    2156    ?    Ss     08:28   0:00    /sbin/init 
root    2       0.0     0.0      0      0       ?    S      08:28   0:00    [kthreadd] 
root    3       0.0     0.0      0      0       ?    S      08:28   0:00    [ksoftirqd/0] 
--More--

#USER       :用户
#%CPU       :占用CPU百分比
#%MEM       :占用MEM百分比
#VSZ        :虚拟内存大小
#RSS        :物理内存大小
#STAT       :进程的状态信息
    S       :休眠状态(为了减轻CPU压力)
    s       :进程的领导者, 拥有子进程,树型的根节点
    Z       :僵尸进程, 进程已经结束, 但是资源没有回收
    R       :正在运行的进程
    O       :可以运行的进程
    T       :挂起状态的进程
    <       :优先级比较高的进程
    >       :优先级比较低的进程
#START      :进程的启动时间

ps -ef

以全格式的方式显示所有进程(every)查看当前终端所启动的进程, 不加选项只查看当前终端的进程

PID         TTY        TIME         CMD         
2398        pts/1    00:00:00   bash 
3625        pts/1    00:00:00   ps 
#PID    : Process ID,是进程的唯一标识, 虽然是int 但是从0开始使用, OS使用延迟重用算法来分配进程的编号, 从而保证任意时刻进程号都是唯一的(对OS来说是唯一的,eg: 连续执行两次同一个a.out,也是两个进程,有PID1.PID2,  所以一定不能把刚刚使用过的PID号PID1给新的进程,否则OS就不知道是之前的没关还是新的刚创建)
#TTY    :终端的次要装置号码,tetetype, 用来表示终端类型
#TIME   :消耗cpu的时间 
#CMD    :命令,即进程名

ps aux

查看所有进程,ps aux是BSD syntax,ps -aux是standard syntax, 但二者的意义完全不同=>$man ps

$ps aux | more      #输出的太多, 把$ps aux执行的结果交给$more, =>回车翻一行,空格翻一页, q退出
USER    PID     %CPU    %MEM    VSZ     RSS     TTY STAT    START   TIME    COMMAND 
root    1       0.0     0.0     3740    2156    ?    Ss     08:28   0:00    /sbin/init 
root    2       0.0     0.0      0      0       ?    S      08:28   0:00    [kthreadd] 
root    3       0.0     0.0      0      0       ?    S      08:28   0:00    [ksoftirqd/0] 
--More--

#USER       :用户
#%CPU       :占用CPU百分比
#%MEM       :占用MEM百分比
#VSZ        :虚拟内存大小
#RSS        :物理内存大小
#STAT       :进程的状态信息
    S       :休眠状态(为了减轻CPU压力)
    s       :进程的领导者, 拥有子进程,树型的根节点
    Z       :僵尸进程, 进程已经结束, 但是资源没有回收
    R       :正在运行的进程
    O       :可以运行的进程
    T       :挂起状态的进程
    <       :优先级比较高的进程
    >       :优先级比较低的进程
#START      :进程的启动时间

ps -ef

以全格式的方式显示所有进程(every)

F   S   UID     PID     PPID    C   PRI NI  ADDR    SZ  WCHAN       TTY TIME        CMD 
4   S   0       1       0       0   80  0   -       935 poll_s      ?   00:00:00    init 
1   S   0       2       0       0   80  0   -       0   kthrea      ?   00:00:00    kthreadd
#PPID   :父进程的编号(IMPORTANT)
#C      :占用CPU百分比
#STIME  :启动时间
F   S   UID     PID     PPID    C   PRI NI  ADDR    SZ  WCHAN       TTY TIME        CMD 
4   S   0       1       0       0   80  0   -       935 poll_s      ?   00:00:00    init 
1   S   0       2       0       0   80  0   -       0   kthrea      ?   00:00:00    kthreadd
#PPID   :父进程的编号(IMPORTANT)
#C      :占用CPU百分比
#STIME  :启动时间

ps -axj

显示系统的守护进程

$ps -axj
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    0     1     1     1 ?           -1 Ss       0   0:01 /sbin/init
    0     2     0     0 ?           -1 S        0   0:00 [kthreadd]
    2     3     0     0 ?           -1 S        0   0:02 [ksoftirqd/0]
    2     5     0     0 ?           -1 S        0   0:02 [kworker/u:0]
    2     6     0     0 ?           -1 S        0   0:00 [migration/0]
    2     7     0     0 ?           -1 S        0   0:01 [watchdog/0]
    2     8     0     0 ?           -1 S        0   0:00 [migration/1]
    2    10     0     0 ?           -1 S        0   0:02 [ksoftirqd/1]

top

$top [-dbnp] #动态查看进程的变化
-d 数字 #后面可以接刷新的,默认是5秒。
-b #以批次的方式执行top,还有更多的参数可以使用。
#通常会搭配数据流重定向来将批处理的结果输出成文件
-n #与-b 搭配,意义是,需要进行几次top的输出结果
-p pid #指定某些个PID来进行查看监测
Note:在top执行过程当中可以使用的按键命令
: 显示在top当中可以输入的按键命令
P: 以CPU的使用资源排序显示
M: 以内存的使用资源排序显示
N: 以PID顺序排序
T: 由该进程使用的CPU时间累积(TIME+)排序
k: 给予某个PID一个信号 (signal)
r: 给予某个PID重新制定一个nice值
q: 离开top的按键

pstree

stree [-A|U] [-up]
A #各进程树之间的连接以ASCII字符来连接
U #各进程树之间的连接以utf8码的字符来连接,在某些终端端口写可能会有错误
u #同时列出每个进程的所属帐号名称
-p#同时列出每个进程的PID

$pstree -A
init-+-NetworkManager-+-dnsmasq
     |                `-2*[{NetworkManager}]
     |-accounts-daemon---{accounts-daemon}
     |-irqbalance
     |-lightdm-+-Xorg---2*[{Xorg}]
     |         |-lightdm-+-gnome-session-+-bluetooth-apple---2*[{bluetooth-apple}]
     |         |         |               |-deja-dup-monito---2*[{deja-dup-monito}]
$pstree -U
init─┬─NetworkManager─┬─dnsmasq
     │                └─2*[{NetworkManager}]
     ├─accounts-daemon───{accounts-daemon}
     ├─acpid
     ├─atd
     ├─avahi-daemon───avahi-daemon
     ├─bluetoothd
     ├─colord───2*[{colord}]
     ├─gnome-terminal─┬─bash───pstree
     │                ├─gnome-pty-helpe
     │                └─3*[{gnome-terminal}]
     ├─goa-daemon───{goa-daemon}
     ├─gsd-locate-poin───2*[{gsd-locate-poin}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值