linux系统命令ps实例讲解

时间 : 18-01-28 栏目 : linux运维 作者 : 老薛 评论 : 0 点击 : 389 次

一、ps命令用途介绍  

    显示瞬间行程 (process) 的动态

二、语法: 

    ps [参数]

三、参数选项说明:

********* simple selection ********* 

-A all processes  /列出所有的进程                   

-N negate selection                 

-d all except session leaders        

-e all processes   /显示所有进程                  

-T  all processes on this terminal   /显示当前终端的所有进程

-a  all w/ tty, including other users  //显示终端上的所有进程,包括其他用户的进程。

g  OBSOLETE -- DO NOT USE            

r  only running processes 前面没有-/显示运行中的进程;           

x  processes w/o controlling ttys     / x 显示无控制终端的进程;

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的行程      ★★★★★常用

********* selection by list *********

-C by command name

-G by real group ID (supports names)

-U by real user ID (supports names)

-g by session OR by effective group name

-p by process ID

-s processes in the sessions given

-t by tty

-u by effective user ID (supports names) /按用户名和启动时间的顺序来显示进程;

U  processes for specified users

t  by tty

*********** output format ********** 

-o,o user-defined 

-f full     /全格式     

用树形格式来显示进程;

-j,j job control   /用任务格式来显示进程;

s  signal         

-O,O preloaded -o 

v  virtual memory 

-l,l long        长格式输出;

u  user-oriented  

-F   extra full   

X  registers      

-h 不显示标题

*********** long options ***********

--Group

--User

--pid

--cols

–ppid

--group

--user

 --sid

--rows

 –info

--cumulative

--format

--deselect

--sort

--tty

--forest

--version

--heading

 --no-heading

-context

********* misc options *********

-V,V  show version     

L  list format codes 

f  ASCII art forest

-m,m,-L,-T,H  threads  

S  children in sum   

-y change -l format

-M,Z  security data    

c  true command name  #列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常服务的标示。

-c scheduling class

-w,w  wide output  /显示加宽可以显示较多的资讯

  n  numeric WCHAN,UID

  -H process hierarchy

 

四、命令实际各个参数的使用案例及拓展。

    范例1.

[root@backup ~]# ps

     PID TTY          TIME CMD

    4137 pts/0    00:00:00 bash

    4170 pts/0    00:00:00 ps
可以看到,显示地项目共分为四项,依次为PID(进程ID)TTY(终端名称)

TIME(进程执行时间)COMMAND(该进程地命令行输入).

    范例2. –A列出所有的行程

[root@backup ~]# ps –A  #列出所有的行程

  PID TTY          TIME CMD

  1 ?        00:00:02 init

  2 ?        00:00:00 migration/0

  3 ?        00:00:00 ksoftirqd/0

  4 ?        00:00:00 watchdog/0

  5 ?        00:00:00 events/0

  6 ?        00:00:00 khelper

  7 ?        00:00:00 kthread

  ……       ………… …………

  4137 pts/0    00:00:00 bash

  4165 pts/0    00:00:00 ps

范例3.  -a  显示终端上的所有进程,包括其他用户的进程。

  [root@backup ~]# ps -a  #显示终端上的所有进程,包括其他用户的进程。

  PID TTY          TIME CMD

  4462 pts/1    00:00:00 tail #会话窗口2上运行的命令 tail -f /var/log/messages

  4463 pts/0    00:00:00 ps   #会话窗口1上运行的 ps -a

范例4.u

[root@backup ~]# ps -A u

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

root 1 0.0 0.2 2160 644 ? Ss 07:59 0:02 init [3]                 

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

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

root         4  0.0  0.0      0     0 ?        S<   07:59   0:00 [watchdog/0]

root         5  0.0  0.0      0     0 ?        S<   07:59   0:00 [events/0]

root         6  0.0  0.0      0     0 ?        S<   07:59   0:00 [khelper]

root         7  0.0  0.0      0     0 ?        S<   07:59   0:00 [kthread]

root        10  0.0  0.0      0     0 ?        S<   07:59   0:00 [kblockd/0]

root        11  0.0  0.0      0     0 ?        S<   07:59   0:00 [kacpid]

root       176  0.0  0.0      0     0 ?        S<   07:59   0:00 [cqueue/0]

root       179  0.0  0.0      0     0 ?        S<   07:59   0:00 [khubd]

root       181  0.0  0.0      0     0 ?        S<   07:59   0:00 [kseriod]

root       245  0.0  0.0      0     0 ?        S    07:59   0:00 [khungtaskd]

root       246  0.0  0.0      0     0 ?        S    07:59   0:00 [pdflush]

root       247  0.0  0.0      0     0 ?        S    07:59   0:00 [pdflush]

root       248  0.0  0.0      0     0 ?        S<   07:59   0:00 [kswapd0]

root       249  0.0  0.0      0     0 ?        S<   07:59   0:00 [aio/0]

root       472  0.0  0.0      0     0 ?        S<   07:59   0:00 [kpsmoused]

root       496  0.0  0.0      0     0 ?        S<   07:59   0:00 [ata/0]

root       497  0.0  0.0      0     0 ?        S<   07:59   0:00 [ata_aux]

root       508  0.0  0.0      0     0 ?        S<   07:59   0:00 [mpt_poll_0]

root       509  0.0  0.0      0     0 ?        S<   07:59   0:00 [mpt/0]

root       510  0.0  0.0      0     0 ?        S<   07:59   0:00 [scsi_eh_0]

root       515  0.0  0.0      0     0 ?        S<   07:59   0:00 [kstriped]

范例4.-N #显示所有的程序,除了执行ps指令终端机下的程序之外。

[root@backup ~]# ps -N   #显示所有的程序,除了执行ps指令终端机下的程序之外。

PID TTY          TIME CMD

1 ?        00:00:02 init

2 ?        00:00:00 migration/0

3 ?        00:00:00 ksoftirqd/0

4 ?        00:00:00 watchdog/0

5 ?        00:00:00 events/0

6 ?        00:00:00 khelper

7 ?        00:00:00 kthread

10 ?        00:00:00 kblockd/0

  ......

2968 tty1     00:00:00 mingetty

2969 tty2     00:00:00 mingetty

2970 tty3     00:00:00 mingetty

2971 tty4     00:00:00 mingetty

2972 tty5     00:00:00 mingetty

2973 tty6     00:00:00 mingetty

3024 ?        00:00:00 yum-updatesd

3026 ?        00:00:00 gam_server

3027 ?        00:00:00 sshd

3029 pts/0    00:00:00 bash

3076 pts/0    00:00:00 ps

说明:两行红色的属于执行ps指令终端机下的程序,只有在使用-A参数时,才显示。

范例5. -u #查看进程所有者及其他少许详细信息
  [root@backup ~]# ps u

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

root      2904  0.0  0.1   1748   468 tty2     Ss+  00:19   0:00 /sbin/mingetty tty2

root      2905  0.0  0.1   1748   468 tty3     Ss+  00:19   0:00 /sbin/mingetty tty3

root      2906  0.0  0.1   1748   468 tty4     Ss+  00:19   0:00 /sbin/mingetty tty4

root      2907  0.0  0.1   1748   464 tty5     Ss+  00:19   0:00 /sbin/mingetty tty5

root      2908  0.0  0.1   1748   468 tty6     Ss+  00:19   0:00 /sbin/mingetty tty6

root      2968  0.0  0.5   5496  1416 pts/0    Ss   00:22   0:00 -bash

root      3004  0.0  0.5   5496  1432 tty1     Ss+  00:26   0:00 -bash

root      3100  0.0  0.3   2272   820 pts/0    R+   00:51   0:00 ps u

bash进程前面有条横线,意味着该进程便是用户地登录shell,所以对于一个登录用户来说带短横线地进程只有一个.还可以看到%CPU%MEM两个选项,前者指该进程占用地CPU时间和总时间地百分比;后者指该进程占用地内存和总内存地百分比.在这种情况下看到了所有控制终端地进程;当然对于其他那些没有控制终端地进程还是没有观察到,所以这时就需要运用x选项.运用x选项可以观察到所有地进程情况.

范例6 aux

[root@backup ~]# ps aux

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

root         1  0.0  0.2   2160   644 ?        Ss   07:59   0:02 init [3]                 

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

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

root         4  0.0  0.0      0     0 ?        S<   07:59   0:00 [watchdog/0]

root         5  0.0  0.0      0     0 ?        S<   07:59   0:00 [events/0]

root         6  0.0  0.0      0     0 ?        S<   07:59   0:00 [khelper]

root         7  0.0  0.0      0     0 ?        S<   07:59   0:00 [kthread]

root        10  0.0  0.0      0     0 ?        S<   07:59   0:00 [kblockd/0]

中间省略了一部分

root      3045  0.0  1.1  10208  2904 ?        Ss   08:15   0:00 sshd: root@pts/0

root      3047  0.0  0.5   5500  1416 pts/0    Ss   08:16   0:00 -bash

root      3799  0.0  5.9  27712 15292 ?        SN   10:16   0:00 /usr/bin/python -tt /usr/libexec

root      3925  0.0  0.3   2276   824 pts/0    R+   10:53   0:00 ps aux

 

说明:

USER: 进程所有者
PID: 
进程ID

%CPU: 占用的 CPU 使用率
%MEM: 
占用的内存使用率
VSZ: 
占用的虚拟内存大小
RSS: 
占用的内存大小

TTY: 终端的次要装置号码 (minor device number of tty)

STAT: 进程状态:

 

[root@backup ~]# ps aux |grep sshd

root      2698  0.0  0.4   7192  1060 ?        Ss   00:19   0:00 /usr/sbin/sshd

root      2966  0.0  1.1  10044  2888 ?        Ss   00:22   0:00 sshd: root@pts/0

root      3129  0.0  0.1   1928   504 pts/0    R+   01:02   0:00 grep sshd

START: 启动进程的时间; 
TIME: 
进程消耗CPU的时间;
COMMAND:
命令的名称和参数;

最常用的方法是ps aux,然后再用管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

[root@backup ~]# ps aux |grep sshd

root      2698  0.0  0.4   7192  1060 ?        Ss   00:19   0:00 /usr/sbin/sshd

root      2966  0.0  1.1  10044  2888 ?        Ss   00:22   0:00 sshd: root@pts/0

root      3129  0.0  0.1   1928   504 pts/0    R+   01:02   0:00 grep sshd

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

[root@backup ~]# ps -eo pid,stat,pri,uid --sort uid

  PID STAT PRI   UID

    1 Ss    21     0

    2 S<   139     0

    3 SN     5     0

    4 S<   139     0

    5 S<    29     0

    6 S<    29     0

    7 S<    29     0

   10 S<    29     0

   11 S<    19     0

  176 S<    28     0

  179 S<    29     0

  181 S<    29     0

  245 S     23     0

  246 S     23     0

  247 S     24     0

  248 S<    28     0

  249 S<    28     0

  472 S<    27     0

  496 S<    24     0

  497 S<    24     0

  508 S<    29     0

  509 S<    19     0

  510 S<    19     0

  515 S<    19     0

  524 S<    29     0

  549 S<    28     0

  582 S   18     0

 1539 S<    24     0

 1820 S<    19     0

 1821 S<    19     0

 1845 S<    24     0

 2302 S  28     0

 2304 S  31     0

 2334 Ss    21     0

 2337 Ss    15     0

 2400 S<    27     0

 2438 Ss    15     0

 2485 Ss    16     0

 2489 Ss    15     0

 2509 S<    30     0

 2553 Ssl   14     0

 2567 Ss    21     0

 2585 S     14     0

 2607 S     21     0

 2628 Ss    15     0

 2652 Ssl   16     0

 2698 Ss    21     0

 2719 Ss    21     0

 2736 Ss    14     0

 2758 Ss    21     0

 2780 Ss    24     0

 2793 Ss    21     0

 2833 SNs    0     0

 2845 Ss    21     0

 2900 S     16     0

 2903 Ss    23     0

 2904 Ss+   21     0

 2905 Ss+   20     0

 2906 Ss+   19     0

 2907 Ss+   18     0

 2908 Ss+   17     0

 2959 SN     5     0

 2961 SN     5     0

 2966 Ss    24     0

 2968 Ss    24     0

 3004 Ss+   24     0

 3133 R+    24     0

 2406 Ss    14    29

 2370 Ss    18    32

 2820 Ss    21    43

 2766 Ss    14    51

 2584 Ss    24    68

 2592 S     21    68

 2598 S     24    68

 2871 Ss    24    70

 2872 Ss    17    70

 2462 Ss    24    81


更多技巧请你关注微信号:linuxDJT


本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw002/2625.html

linux系统命令ps实例讲解:等您坐沙发呢!

发表评论

1 + 2 = ?


博主微信号,很高兴为您提供帮助

随便看看

0