循序渐进学运维 - ps命令篇

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

你可能感兴趣的:(循序渐进学运维 - ps命令篇)