【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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM