想显示系统运行的程序时可以用ps指令

ps指令语法:

[root@www ~]# ps aux <==观察系统所有的程序数据

[root@www ~]# ps -lA <==也是能够观察所有系统的数据

[root@www ~]# ps axjf <==连同部分程序树状态

选项与参数:

-A :所有的 process 均显示出来,与 -e 具有同样的效用; 

-a :不与 terminal 有关的所有 process ;

-u :有效使用者 (effective user) 相关的 process ;

-x :通常与 a 这个参数一起使用,可列出较完整信息。 

输出格式规划:

-l :较长、较详细的将该 PID 的的信息列出; 

-j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

 

常用ps指令结果列表说明:

1)ps -l   /*显示目前属于您自己这次登入的 PID 与相关信息列示出来(只与自己的 bash 有关)*/

[root@www ~]# ps -l

F  S  UID   PID    PPID    C   PRI  NI  ADDR   SZ   WCHAN   TTY     TIME      CMD 

4  S   0   13639  13637   0   75    0     -     1287     wait     pts/1   00:00:00  bash

4  R   0   13700  13639   0   77    0     -     1101       -        pts/1   00:00:00    ps

F:flag,说明这个程序的总结权限,常见号码有4(权限为root)、1(子程序仅进行复制(fork)而没有实际执行(exec));

S:status,主要状态有:

    R【Running:该程序正在运作中】

    S【Sleep:该程序目前正在睡眠状态(idle),但可以被唤醒(signal)】;

    D【不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>打印)】;
    T【stop:该程序可能是在工作控制(背景暂停)或除错 (traced) 状态】;

    Z【Zombie:僵尸状态,程序已经终止但却无法被移除至内存外】

UID/PID/PPID:此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码

C:CPU使用率

PRI/NI:Priority/Nice 优先级,数值越小越优先

ADDR:程序在内存中哪个部分,如果时正在运行的程序一般会显示 -

SZ:代表此程序用掉多少内存

WCHAN:表示目前程序是否运作中,同样的, 若为 - 表示正在运作中

TTY:登入者的终端机位置,若为远程登录则使用动态终端接口 (pts/n),如例子中的pts/1

TIME:程序使用掉的CPU时间,非系统时间

CMD:哪个指令触发的

2)ps -aux /*列出目前所有的正在内存当中的程序*/

 [root@www ~]# ps aux

USER   PID   %CPU %MEM    VSZ  RSS    TTY   STAT   START TIME      COMMAND

root      1       0.0     0.0        2064  616      ?       Ss       Mar11 0:01         init [5]

root      2      0.0     0.0           0      0        ?       S<       Mar11 0:00       [migration/0] 

root      3      0.0     0.0           0      0        ?       SN      Mar11 0:00       [ksoftirqd/0]

------------------------------中间省略--------------------------------

root   13639  0.0     0.2        5148  1508    pts/1   Ss        11:44 0:00        -bash

root   14232  0.0     0.1         4452  876    pts/1   R+        15:52 0:00        ps aux

root   18593  0.0     0.0        2240  476       ?      Ss        Mar14 0:00        /usr/sbin/atd

USER:该 process 属于那个使用者账号的

PID :该 process 的程序标识符

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示“ ?”,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络            连接进主机的程序(远程链接)

STAT:该程序目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令为何

3)ps -axjf /*列出类似程序树的程序显示*/

[root@www ~]# ps axjf

  PPID     PID    PGID      SID     TTY      TPGID      STAT   UID    TIME    COMMAND

    0         1         1           1        ?           -1           Ss      0       0:01       init [5]

-----------------------------------中间省略--------------------------------

    1       4586   4586     4586     ?           -1          Ss       0       0:00     /usr/sbin/sshd

4586    13637   13637   13637     ?           -1          Ss       0       0:00         \_ sshd: root@pts/1

13637   13639   13639   13639   pts/1    14266        Ss       0       0:00             \_ -bash

13639   14266   14266   13639   pts/1    14266        R+      0       0:00                  \_ ps axjf

 PGID:根据man ps中的定义,process group ID or process ID

TPGID:ID of the foreground process group on the tty

SID: process ID of the session leader

当然,树状图也可以用pstree来显示