天天看點

Linux ps 指令

Linux 指令大全

Linux ps (英文全拼:process status)指令用于顯示目前程序的狀态,類似于 windows 的任務管理器。

文法

ps [options] [--help]      
參數

  • ps 的參數非常多, 在此僅列出幾個常用的參數并大略介紹含義
  • -A 列出所有的程序
  • -w 顯示加寬可以顯示較多的資訊
  • -au 顯示較詳細的資訊
  • -aux 顯示所有包含其他使用者的行程
  • au(x) 輸出格式 :
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND      
    • USER: 行程擁有者
    • PID: pid
    • %CPU: 占用的 CPU 使用率
    • %MEM: 占用的記憶體使用率
    • VSZ: 占用的虛拟記憶體大小
    • RSS: 占用的記憶體大小
    • TTY: 終端的次要裝置号碼 (minor device number of tty)
    • STAT: 該行程的狀态:
      • D: 無法中斷的休眠狀态 (通常 IO 的程序)
      • R: 正在執行中
      • S: 靜止狀态
      • T: 暫停執行
      • Z: 不存在但暫時無法消除
      • W: 沒有足夠的記憶體分頁可配置設定
      • <: 高優先序的行程
      • N: 低優先序的行程
      • L: 有記憶體分頁配置設定并鎖在記憶體内 (實時系統或捱A I/O)
    • START: 行程開始時間
    • TIME: 執行的時間
    • COMMAND:所執行的指令

執行個體

查找指定程序格式:

ps -ef | grep 程序關鍵字      

例如顯示 php 的程序:

# ps -ef | grep php
root       794     1  0  2020 ?        00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data   951   794  0  2020 ?        00:24:15 php-fpm: pool www
www-data   953   794  0  2020 ?        00:24:14 php-fpm: pool www
www-data   954   794  0  2020 ?        00:24:29 php-fpm: pool www
...      

顯示程序資訊:

# ps -A 
PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
  17 ?    00:00:00 kacpi_notify
  18 ?    00:00:00 kacpi_hotplug
  19 ?    00:00:27 ata/0
……省略部分結果
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31396 pts/2  00:00:00 ps
      

顯示指定使用者資訊

# ps -u root //顯示root程序使用者資訊
 PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
……省略部分結果
30487 ?    00:00:06 gnome-terminal
30488 ?    00:00:00 gnome-pty-helpe
30489 pts/0  00:00:00 bash
30670 ?    00:00:00 debconf-communi 
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31397 pts/2  00:00:00 ps
      

顯示所有程序資訊,連同指令行

# ps -ef //顯示所有指令,連帶指令行
UID    PID PPID C STIME TTY     TIME CMD
root     1   0 0 10:22 ?    00:00:02 /sbin/init
root     2   0 0 10:22 ?    00:00:00 [kthreadd]
root     3   2 0 10:22 ?    00:00:00 [migration/0]
root     4   2 0 10:22 ?    00:00:00 [ksoftirqd/0]
root     5   2 0 10:22 ?    00:00:00 [watchdog/0]
root     6   2 0 10:22 ?    /usr/lib/NetworkManager
……省略部分結果
root   31302 2095 0 17:42 ?    00:00:00 sshd: root@pts/2 
root   31374 31302 0 17:42 pts/2  00:00:00 -bash
root   31400   1 0 17:46 ?    00:00:00 /usr/bin/python /usr/sbin/aptd
root   31407 31374 0 17:48 pts/2  00:00:00 ps -ef