前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
Linux ps命令用于顯示當前進程 (process) 的狀態。
語法
ps [options] [--help]
[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: 不可中斷的靜止 (通悸□□縝b進行 I/O 動作)
- R: 正在執行中
- S: 靜止狀態
- T: 暫停執行
- Z: 不存在但暫時無法消除
- W: 沒有足夠的記憶體分頁可分配
- <: 高優先序的行程
- N: 低優先序的行程
- L: 有記憶體分頁分配并鎖在記憶體內 (實時系統或捱A I/O)
- START: 行程開始時間
- TIME: 執行的時間
- COMMAND:所執行的指令
實例
# ps -A 顯示進程信息
PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 00:00:00 kacpid17 ? 00:00:00 kacpi_notify18 ? 00:00:00 kacpi_hotplug19 ? 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
PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 00:00:00 kacpid17 ? 00:00:00 kacpi_notify18 ? 00:00:00 kacpi_hotplug19 ? 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 CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 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
PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/04 ? 00:00:00 ksoftirqd/05 ? 00:00:00 watchdog/06 ? 00:00:00 events/07 ? 00:00:00 cpuset8 ? 00:00:00 khelper9 ? 00:00:00 netns10 ? 00:00:00 async/mgr11 ? 00:00:00 pm12 ? 00:00:00 sync_supers13 ? 00:00:00 bdi-default14 ? 00:00:00 kintegrityd/015 ? 00:00:02 kblockd/016 ? 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
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
------------------------------------------------- 我 是 分 隔 線 -------------------------------------------------------
Linux top命令用于實時顯示 process 的動態。
?
使用權限:所有使用者。
語法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
[-] [d delay] [q] [c] [S] [s] [i] [n] [b]
參數說明:
- d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
- q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
- c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
- s : 安全模式,將交談式指令取消, 避免潛在的危機
- i : 不顯示任何閑置 (idle) 或無用 (zombie) 的行程
- n : 更新的次數,完成后將會退出 top
- b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內
實例
顯示進程信息
<span style="color:#880000"># top</span>
顯示完整命令
<span style="color:#880000"># top -c</span>
以批處理模式顯示程序信息
<span style="color:#880000"># top -b</span>
以累積模式顯示程序信息
<span style="color:#880000"># top -S</span>
設置信息更新次數
top -n 2//表示更新兩次后終止更新顯示
-n 2//表示更新兩次后終止更新顯示
設置信息更新時間
# top -d 3//表示更新周期為3秒
//表示更新周期為3秒
顯示指定的進程信息
# top -p 139//顯示進程號為139的進程信息,CPU、內存占用率等
//顯示進程號為139的進程信息,CPU、內存占用率等
顯示更新十次后退出
top -n 10
-n 10
使用者將不能利用交談式指令來對行程下命令
top -s
-s
將更新顯示二次的結果輸入到名稱為 top.log 的檔案里
top -n 2 -b < top.log
-n 2 -b < top.log
?