Linux中ps命令
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
ps 命令参数:
ps -a [同一终端下的所有程序]
ps -A [显示所有进程]
ps -c [显示进程的真实名称]
ps -N [反向选择]
ps -e [ 等于 '-A']
ps -f [显示程序间的关系 ]
ps -H [显示树状结构]
ps -r [显示当前终端的进程]
ps -T [显示当前终端的所有程序]
ps u [指定用户的所有进程]
ps -au [显示较详细的资讯]
ps -l [用来观察自己的bash相关的进程]
ps -aux [显示所有包含其他使用者的行程]
ps -V [显示版本]
示例:
[root@ localhost ~]# ps -l #用来观察自己的bash相关的进程
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1426 1424 0 80 0 - 27079 wait pts/1 00:00:00 bash
4 R 0 25037 1426 0 80 0 - 27035 - pts/1 00:00:00 ps
F:代表这个进程旗标 (process flags),说明这个进程的权限,常见有:
若4 表示此进程的权限 root ;
若1 則表示此子进程仅能fork。
S:代表这个进程的状态 (STAT),主要的状态有:
R (Running):该进程正在运行;
S (Sleep):该进程正在睡眠,可被唤醒。
D :不可被唤醒
T :停止状态(stop);
Z (Zombie):僵尸进程。
UID/PID/PPID:代表『此进程被该 UID 所拥有/进程的 PID 号/此进程的父进程 PID 』
C:代表 CPU 使用率,单位为百分比;
PRI/NI:Priority/Nice 的缩写,代表此进程被 CPU 所执行的优先顺序,数值越小代表该进程越快被 CPU 执行
ADDR/SZ/WCHAN:都与内存,ADDR 是 kernel function,指出该进程在内存的哪個部分,如果是个 running 进程,一般就会显示『 - 』 / SZ 代表此进程用掉多少内存 / WCHAN 表示目前进程是否工作,同样的, 若为 - 表示正在工作中。
TTY:登入者的终端机位置,若为远程登入则使用动态終端介面 (pts/n);
TIME:使用掉的 CPU 时间,注意,是实际花费掉的 CPU 运作的时间,而不是系統时间;
CMD:就是 command 的缩写,造成此进程的指令。
[root@ localhost ~]# ps -a #同一终端下的所有程序
PID TTY TIME CMD
25013 pts/1 00:00:00 ps
[root@ localhost ~]# ps -A #显示所有进程
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 stopper/0
6 ? 00:00:00 watchdog/0
7 ? 00:00:06 events/0
[root@ localhost ~]# ps -c #显示进程的真实名称
PID CLS PRI TTY TIME CMD
1426 TS 19 pts/1 00:00:00 bash
25015 TS 19 pts/1 00:00:00 ps
[root@ localhost ~]# ps -N #反向选择
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 stopper/0
[root@ localhost ~]# ps -e #等于 '-A'
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 stopper/0
6 ? 00:00:00 watchdog/0
[root@ localhost ~]# ps -f #显示程序间的关系
UID PID PPID C STIME TTY TIME CMD
root 1426 1424 0 10:36 pts/1 00:00:00 -bash
root 25019 1426 0 16:29 pts/1 00:00:00 ps -f
[root@ localhost ~]# ps -H #显示树状结构
PID TTY TIME CMD
1426 pts/1 00:00:00 bash
25025 pts/1 00:00:00 ps
[root@ localhost ~]# ps -r #显示当前终端的进程
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
PID TTY STAT TIME COMMAND
25026 pts/1 R+ 0:00 ps -r
[root@ localhost ~]# ps -T #显示当前终端的所有程序
PID SPID TTY TIME CMD
1426 1426 pts/1 00:00:00 bash
25027 25027 pts/1 00:00:00 ps
[root@ localhost ~]# ps -uroot #指定用户的所有进程
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
[root@ localhost ~]# ps -au #显示较详细的资讯
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1121 0.0 0.0 4064 588 tty1 Ss+ 10:32 0:00 /sbin/mingetty /dev/tty1
[root@ localhost ~]# ps -aux #显示所有包含其他使用者的行程
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19352 1520 ? Ss 10:32 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:32 0:00 [kthreadd]
[root@ localhost ~]# ps -V #显示版本
procps version 3.2.8