【Linux】ps命令

ps命令是基础的监控命令,ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息。

参数

  • -A 显示所有进程(与-e效果一样)
  • -a 显示除控制进程与无端进程外的所有进程
  • -N 显示与指定参数不符的所有进程
  • -d 显示除控制进程外的所有进程
  • -C 显示包含在cmdlist列表中的进程
  • -G 显示组ID在grplist列表中的进程
  • -U 显示属主的用户ID在uerlist列表中的进程
  • -g 显示会话或组ID在grplist列表中的进程
  • -p 显示PID在pidlist列表中的进程
  • -s 显示会话ID在sesslist列表中的进程
  • -t 显示终端ID在ttylist列表中的进程
  • -u 显示有效用户ID在userlist列表中的进程
  • -F 显示更多额外输出(相对于-f参数而言)
  • -O 显示默认输出以外以及format列表指定的特定列
  • -M 显示进程的安全信息
  • -c 显示进程的额外调度信息
  • -f 显示完整格式的输出
  • -j 显示任务信息
  • -l 显示长列表
  • -o 仅显示由format指定的列
  • -y 不要显示进程标记
  • -Z 显示安全标签信息
  • -H 用层级格式来显示信息
  • -n 定义WCHAN列显示的值
  • -w 采用宽输出模式,不限宽度显示
  • -L 显示进程中的线程
  • -V 显示ps的版本号

常用组合

  • ps aux  列出目前所有的正在内存当中的程序

           a:所有与终端相关的进程

           u:所有与终端无关的进程

           x:以用户为中心组织进程状态信息显示


  • ps –ef 显示所有信息,连同命令行

           -e:显示所有进程

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

输出信息解释


Linux:/usr/local/sbin # ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Dec17 ?        00:00:02 init [5] 
root         2     0  0 Dec17 ?        00:00:00 [kthreadd]
root         3     2  0 Dec17 ?        00:00:01 [ksoftirqd/0]
root         5     2  0 Dec17 ?        00:00:02 [kworker/u:0]
root         6     2  0 Dec17 ?        00:00:00 [migration/0]
root         7     2  0 Dec17 ?        00:00:00 [watchdog/0]

  • UID      启动这些进程的用户
  • PID      进程ID
  • PPID     父进程ID
  • C        进程CPU中的利用率
  • STIME    进程启动时的系统时间
  • TTY      进程启动时的终端设备
  • TIME     进行进程需要的累计CPU时间
  • CMD      启动的程序名称


如果想要查看更多的输出信息

Linux:/usr/local/sbin # ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 19366 19363  0  80   0 -  6459 wait   pts/2    00:00:12 bash
4 R     0 27857 19366 99  80   0 -  1182 -      pts/2    00:00:00 ps

  • F      内核分配给进程的系统标记
  • S      进程的状态(O代表正在运行; S代表在睡眠; R代表可运行 正等待运行;Z代表僵化,进程已结束但父进程不存在;T代表停止)
  • PRI    进程的优先级
  • NI     谦让度值用来参与决定优先级
  • ADDR   进程的内存地址
  • SZ     假如进程被换出,所需交换空间的大致大小
  • WCHAN  进程休眠的内核函数的地址

实际案例

1.显示所有进程信息

Linux:/usr/local/sbin # ps -A
   PID TTY          TIME CMD
     1 ?        00:00:02 init
     2 ?        00:00:00 kthreadd
     3 ?        00:00:02 ksoftirqd/0
     5 ?        00:00:02 kworker/u:0
     6 ?        00:00:00 migration/0
     7 ?        00:00:00 watchdog/0
     8 ?        00:00:00 cpuset
     9 ?        00:00:00 khelper

2.显示指定用户信息

Linux:/usr/local/sbin # ps -u root
   PID TTY          TIME CMD
     1 ?        00:00:02 init
     2 ?        00:00:00 kthreadd
     3 ?        00:00:02 ksoftirqd/0
     5 ?        00:00:02 kworker/u:0
     6 ?        00:00:00 migration/0
     7 ?        00:00:00 watchdog/0
     8 ?        00:00:00 cpuset
     9 ?        00:00:00 khelper
    10 ?        00:00:00 netns
    11 ?        00:00:00 sync_supers
    12 ?        00:00:00 bdi-default

3.查找特定进程

Linux:/usr/local/sbin # ps -ef|grep sshd
root      3611     1  0 Dec17 ?        00:00:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid
root     19363  3611  0 Dec17 ?        00:00:03 sshd: root@pts/2                                  
root     28205 19366 99 03:04 pts/2    00:00:00 grep sshd


posted @ 2018-12-18 16:05  OLIVER_QIN  阅读(2697)  评论(0编辑  收藏  举报