ps命令

全名:Process Status

功能:显示某一时刻进程的状态,report a snapshot of the current processes

使用权限:所有使用者

 

使用方式:ps [options] [--help]

  • UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符

  • BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符

  • GNU 风格的长选项,选项前有两个“-”连字符

 

常用参数:

  • a:所有与终端(指的是所有的终端,包括自己登录的这个终端)相关的进程;

  • x:所有与终端无关的进程;

  • u:显示进程所有者的用户名

  • o:指定字段来显示

  • -e:显示所有进程(UNIX格式)

  • -f:显示完整格式的进程信息

  • -H:以层级结构显示进程的相关信息;

  • -F:显示完整格式的进程信息;

  • –u:显示指定用户的进程

  • –l:仅显示自己登录的这个终端中的进程

  • –C:通过进程名显示进程

 

实例:显示与终端相关的进程

[root@Linux_11~]# ps a

  PID TTY     STAT   TIME COMMAND

 2477 tty1    Ss+    0:00 /sbin/mingetty/dev/tty1

 2479 tty2    Ss+    0:00 /sbin/mingetty/dev/tty2

 2481 tty3    Ss+    0:00 /sbin/mingetty/dev/tty3

 2483 tty4    Ss+    0:00 /sbin/mingetty/dev/tty4

 2486 tty5    Ss+    0:00 /sbin/mingetty/dev/tty5

 2488 tty6    Ss+    0:00 /sbin/mingetty/dev/tty6

 4558 pts/0   Ss     0:00 -bash

 4800 pts/0   S      0:00 su - wuxinbing

 4801 pts/0   S      0:00 –bash

 

 

实例:显示与终端无关的进程

[root@Linux_11~]# ps x

  PID TTY     STAT   TIME COMMAND

    1 ?       Ss     0:01 /sbin/init

    2 ?       S      0:00 [kthreadd]

    3 ?       S      0:00 [migration/0]

    4 ?       S      0:00 [ksoftirqd/0]

    5 ?       S      0:00 [migration/0]

    6 ?       S      0:00 [watchdog/0]

    7 ?       S      0:00 [migration/1]

    8 ?       S      0:00 [migration/1]

    9 ?       S      0:00 [ksoftirqd/1]

   10 ?       S      0:00 [watchdog/1]

   11 ?       S      0:00 [migration/2]

   12 ?       S      0:00 [migration/2]

 

 

实例:以完整格式显示所有的进程

[root@Linux_11~]# ps -ef

UID        PID PPID  C STIME TTY          TIME CMD

root         1    0  0 08:31 ?        00:00:01 /sbin/init

root         2    0  0 08:31 ?        00:00:00 [kthreadd]

root         3    2  0 08:31 ?        00:00:00 [migration/0]

root         4    2  0 08:31 ?        00:00:00 [ksoftirqd/0]

root         5    2  0 08:31 ?        00:00:00 [migration/0]

root         6    2  0 08:31 ?        00:00:00 [watchdog/0]

root         7    2  0 08:31 ?        00:00:00 [migration/1]

root         8    2  0 08:31 ?        00:00:00 [migration/1]

root         9    2  0 08:31 ?        00:00:00 [ksoftirqd/1]

 

 

实例:查看当前系统进程的uid,pid,stat,pri, uid号排序.

[root@Linux_11 dstat]# ps -eo pid,stat,pri,uid --sort uid

  PID STAT PRI  UID

    1 Ss   19     0

    2 S    19     0

    3 S   139     0

    4 S    19     0

    5 S   139     0

    6 S   139     0

    7 S   139     0

    8 S   139     0

    9 S    19     0

 

 

实例:显示指定用户相关的进程

[root@Linux_11 ~]# ps -u admin

  PID TTY          TIME CMD

 5042 pts/1   00:00:00 bash

 

 

实例:将目前属于自己这次登入的 PID 与相关信息列示出来
[root@Linux_11 ~]# ps -l

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

4 S     0 4558  4554  0 80   0 -  1739 -     pts/0    00:00:00 bash

4 S     0 4800  4558  0 80   0 -  2274 -     pts/0    00:00:00 su

4 S     0 4956  4801  0 80   0 -  2277 -     pts/0    00:00:00 su

4 S     0 4962  4956  0 80   0 -  1719 -     pts/0    00:00:00 bash

4 R     0 7244  4962  0 80   0 -  1624 -     pts/0    00:00:00 ps

 

实例:通过进程名显示进程

[root@Linux_11 ~]# ps -Cnginx

  PID TTY          TIME CMD

 7288 ?       00:00:00 nginx

 7289 ?       00:00:00 nginx

提示:上面若要查看详解的信息还可以使用-f参数

 

实例:以详解格式显示所有进程

[root@Linux_11 ~]# ps aux

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

root         1 0.0  0.2   2900 1436 ?        Ss   Dec25  0:01 /sbin/init

root         2 0.0  0.0      0    0 ?        S    Dec25  0:00 [kthreadd]

root         3 0.0  0.0      0    0 ?        S    Dec25  0:00 [migration/0]

root         4 0.0  0.0      0    0 ?        S    Dec25  0:00 [ksoftirqd/0]

root         5 0.0  0.0      0    0 ?        S    Dec25  0:00 [migration/0]

root         6 0.0  0.0      0    0 ?        S    Dec25  0:01 [watchdog/0]

root         7 0.0  0.0      0    0 ?        S    Dec25  0:00 [migration/1]

相关说明如下:

USER:启动此进程的用户名

VSZ:占用的虚拟内存集;virtualmemory size

RSS:常驻内存集;Resident Size

STAT:进程的状态

R:正在运行中;running

S:可中断睡眠interruptable sleeping

D:不可中睡睡眠uninterruptable sleeping

T:停止Stopped

Z:僵尸zombie

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

 

 

 

实例:显示详解的进程

  • -e:显示所有进程(UNIX格式)

  • -f:显示完整格式的进程信息

 

[root@Linux_11 ~]# ps -ef

UID        PID PPID  C STIME TTY          TIME CMD

root         1    0  0 Dec25 ?        00:00:01 /sbin/init

root         2    0  0 Dec25 ?        00:00:00 [kthreadd]

root         3    2  0 Dec25 ?        00:00:00 [migration/0]

root         4    2  0 Dec25 ?        00:00:00 [ksoftirqd/0]

root         5    2  0 Dec25 ?        00:00:00 [migration/0]

root         6    2  0 Dec25 ?        00:00:01 [watchdog/0]

相关说明如下:

UID:启动此进程的用户

PID:此进程的父进程的PID

CCPU占用百分比 cpuutilization

STIME:此进程的启动时间,start time

TTY:在何种终端下启动的此进程

TIME:此进程的累积运行时间

 

 

实例:树形结构显示进程

  • -H:以层级结构显示进程的相关信息;

  • -F:显示完整格式的进程信息;

[root@Linux_11 ~]# ps -eFH

UID        PID PPID  C    SZ  RSS PSR STIME TTY          TIMECMD

root         2    0  0     0    0   2 Dec25 ?        00:00:00 [kthreadd]

root         3    2  0     0    0   0 Dec25 ?        00:00:00   [migration/0]

root         4    2  0     0    0   0 Dec25 ?        00:00:00   [ksoftirqd/0]

root         5    2  0     0    0   0 Dec25 ?        00:00:00   [migration/0]

root         6    2  0     0    0   0 Dec25 ?        00:00:01   [watchdog/0]

root         7    2  0     0    0   1 Dec25 ?        00:00:00   [migration/1]

root         8    2  0     0    0   1 Dec25 ?        00:00:00   [migration/1]

相关说明如下:

PSR:运行在哪颗CPU

 

 

实例:指定字段名来显示进程

常用的字段值有:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

ninice值;

prioritypriority, 优先级;

rtprioreal time priority,实时优先级

 

提示:

  • field1, field2,...:自定义要显示的字段列表,以逗号分隔;

  • o必须写在后面

  • 字段不分大小写

 

[root@Linux_11 ~]# ps axo pid,command

PID COMMAND

1 /sbin/init

2 [kthreadd]

3 [migration/0]

4 [ksoftirqd/0]

5 [migration/0]

6 [watchdog/0]

7 [migration/1]

8 [migration/1]