ps命令用来查看当前系统中运行的进程的信息.它可以提供关于进程的许多信息.可以根据显示的信息确定哪个进程正在运行,哪个进程是被挂起或出了问题,进程已运行了多久,进程正在使用的资源,进程的相对优先级及进程的标志号(PID).所有这些信息对用户都很有用,对于系统管理员来说更为重要.

一般格式:
ps [选项]
常用选项:
 -a  显示系统中与tty相关的(除会话组长之外)所有进程的信息.
 -e  显示所有进程的信息.
 -f  显示进程的所有信息.
 -l  以长格式显示进程信息.
 -r  只显示正在运行的进程.
 -u  显示面向用户的格式(包括用户名、CPU及内存使用情况等信息).
 -x  显示所有终端上的进程信息.

示例:

①列出每个与当前shell有关的进程的基本信息:

$ps
PID TTY          TIME CMD
9723 pts/0    00:00:00 bash
9751 pts/0    00:00:00 ps

其中,各字段的含义如下:

PID  进程标志号.
TTY  该进程建立时所对应的终端,"?"表示该进程不占用终端.
TIME  报告进程累计使用的CPU时间.注意,尽管有些命令(如 sh)已经运转了很长时间,但是它们真正使用CPU的时间往往很短.所以,该字段的值往往是00:00:00.
CMD 执行进程的命令名.

②显示系统中所有进程的全面信息:

$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun25 ?        00:00:01 init [3]
root         2     1  0 Jun25 ?        00:00:00 [migration/0]
root         3     1  0 Jun25 ?        00:00:00 [ksoftirqd/0]
root         4     1  0 Jun25 ?        00:00:00 [watchdog/0]
root         5     1  0 Jun25 ?        00:00:00 [migration/1]
root         6     1  0 Jun25 ?        00:00:00 [ksoftirqd/1]
root         7     1  0 Jun25 ?        00:00:00 [watchdog/1]
root         8     1  0 Jun25 ?        00:00:00 [events/0]
root         9     1  0 Jun25 ?        00:00:00 [events/1]
root        10     1  0 Jun25 ?        00:00:00 [khelper]
……
root      9755  9723  0 10:10 pts/0    00:00:00 ps -ef

各项的含义是:

UID  进程属主的用户ID号.
PID  进程ID号.
PPID  父进程的ID号.
C  进程最近使用CPU的估算.
STIME  进程开始时间,以小时:分:秒的形式给出.
TTY  该进程建立时所对应的终端,"?"表示该进程不占用终端.
TIME  报告进程累计使用的CPU时间.注意,尽管有些命令(如 sh)己经运转了很长时间,但是它们真正使用CPU的时间往往很短.所以,该字段的值往往是0:00.
CMD 是conunand(命令)的缩写.

③显示所有终端上所有用户的有关进程的所有信息:

$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2160   660 ?        Ss   Jun25   0:01 init [3]
root         2  0.0  0.0      0     0 ?        S<   Jun25   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   Jun25   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   Jun25   0:00 [watchdog/0]
root         5  0.0  0.0      0     0 ?        S<   Jun25   0:00 [migration/1]
root         6  0.0  0.0      0     0 ?        SN   Jun25   0:00 [ksoftirqd/1]
root         7  0.0  0.0      0     0 ?        S<   Jun25   0:00 [watchdog/1]
root         8  0.0  0.0      0     0 ?        S<   Jun25   0:00 [events/0]
root         9  0.0  0.0      0     0 ?        S<   Jun25   0:00 [events/1]
root        10  0.0  0.0      0     0 ?        S<   Jun25   0:00 [khelper]
root        11  0.0  0.0      0     0 ?        S<   Jun25   0:00 [kthread]
root        15  0.0  0.0      0     0 ?        S<   Jun25   0:00 [kblockd/0]
root        16  0.0  0.0      0     0 ?        S<   Jun25   0:00 [kblockd/1]
root        17  0.0  0.0      0     0 ?        S<   Jun25   0:00 [kacpid]
root       120  0.0  0.0      0     0 ?        S<   Jun25   0:00 [cqueue/0]
……
root      9784  0.0  0.0   5456   956 pts/0    R+   10:23   0:00 ps -aux

在上面列表中列出的进程信息中包含了一些新的项,它们的含义是:

USER  启动进程的用户.
%CPU  运行该进程占用CPU的时间与该进程总的运行时间的比例.
%MEM  该进程占用内存和总内存的比例.
VSZ  虚拟内存的大小,以KB为.单位.
RSS  占用实际内存的大小,以KB为单位.
STAT  进程的运行状态,其中包括以下几种代码:
  D 不可中断的睡眠.
  R 执行.
  S 睡眠.
  T 跟踪或停止.
  Z 终止.
  W 没有内存驻留页.
  < 高优先权的进程.
  N 低优先权的进程.
  L 有锁入内存的页面(用于实时任务或UO任务).
START  开始运行的时间.