
top 命令提供執行系統的動態實時檢視。它用於監控系統程序和資源使用情況,如 CPU、記憶體和交換使用情況。
top 命令的一般語法:
$ top [OPTIONS]
1. 列出所有正在執行的程序
top
使用 top 命令顯示正在執行的任務、記憶體、cpu 和 swap。要關閉視窗,請按 Q
示例:
在不帶任何選項的終端中執行 top 命令,可能會得到以下結果。
top - 15:20:26 up 10 days, 2:30, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 193 total, 1 running, 192 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.2 sy, 0.0 ni, 98.9 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 8167848 total, 2003084 free, 1652232 used, 4512532 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 6171720 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1219 root 20 0 658884 56644 35980 S 6.7 0.7 42:11.77 Xorg 2781 user1 20 0 883780 31576 21744 S 6.7 0.4 0:01.01 gnome-terminal- 1 root 20 0 225636 9484 6812 S 0.0 0.1 0:07.31 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mm_percpu_wq 7 root 20 0 0 0 0 S 0.0 0.0 0:00.31 ksoftirqd/0 8 root 20 0 0 0 0 I 0.0 0.0 0:02.91 rcu_sched
第一行提供系統摘要:當前時間、正常執行時間、使用者數量和平均負載。
第二行顯示任務總數及其狀態:執行、休眠、停止或殭屍。
第三行顯示 CPU 使用詳情:使用者程序、系統程序、空閒程序等。
第四行和第五行顯示記憶體使用情況:總記憶體、空閒記憶體、已用記憶體和緩衝/快取記憶體。其餘各行列出系統上執行的所有程序。每一行代表一個程序,詳細內容包括 PID, USER, CPU usage, Memory usage, 以及啟動該程序所使用的命令。
2. 顯示特定使用者的程序
top -u [user]
使用 -u 選項可以顯示特定使用者的所有執行程序資訊。
示例:
顯示 root 使用者的執行程序。
top - 12:34:56 up 10 days, 2:30, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st MiB Mem : 7976.1 total, 1694.7 free, 1263.5 used, 5017.8 buff/cache MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 6412.1 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 225492 9484 6812 S 0.0 0.1 0:06.37 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.36 ksoftirqd/0 5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 I 0.0 0.0 0:01.31 rcu_sched ...
在這個例子中,你可以看到 top -u root 命令只顯示 root 使用者擁有的程序。輸出包括每個程序的相關資訊,如程序 ID (PID)、優先順序 (PR)、友好值 (NI)、虛擬記憶體大小 (VIRT)、常駐記憶體大小 (RES)、共享記憶體大小 (SHR)、CPU 使用率 (%CPU)、記憶體使用率 (%MEM) 以及啟動程序的命令 (COMMAND)。
3. 啟用批處理模式
top -b
top -b 命令用於以批處理模式執行 top。當你想將 top 的輸出重定向到檔案或其他命令時,這條命令特別有用。在批處理模式下,top 不接受輸入,一直執行到設定的迭代次數限制,或直到被殺死。
示例:
在本例中,-n 1 會讓 top 只執行一次,而不是持續更新。輸出會被重定向到 top-output.txt 中。
開啟 top-output.txt 檔案,可能會看到類似下面的輸出:
top - 18:25:01 up 10 days, 5:45, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.9 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8167848 total, 1785084 free, 1583456 used, 4799308 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 6250480 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 225492 9484 6812 S 0.0 0.1 0:09.07 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.55 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:07.28 rcu_sched
4. 從同一狀態開始
top -c
top -c 顯示當前活動程序以及其他資訊,包括啟動每個程序所用的完整命令列。這有助於檢視傳遞給程序的確切引數。
示例:
下面是 top -c 命令的輸出示例:
top - 12:34:56 up 10 days, 2:03, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2040204 total, 987204 free, 105204 used, 948796 buff/cache KiB Swap: 1048572 total, 1048572 free, 0 used. 1830204 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 159444 6604 3904 S 0.0 0.3 0:06.35 /sbin/init splash 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.85 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root 20 0 0 0 0 S 0.0 0.0 0:03.78 [rcu_sched] 123 root 20 0 278532 37888 26976 S 0.0 1.9 0:03.45 /usr/bin/dockerd -H fd:// 456 www-data 20 0 161916 6412 2680 S 0.0 0.3 0:00.01 /usr/sbin/apache2 -k start
前幾行提供系統摘要,包括當前時間、系統執行時間、使用者數量、平均負載和記憶體使用情況。
之後的每一行代表一個程序,幷包含每個程序的各種資訊。其中包括程序 ID (PID)、擁有該程序的使用者、優先順序 (PR) 和 nice 值 (NI)、記憶體使用情況 (VIRT、RES、SHR)、當前狀態 (S)、CPU 使用率 (%CPU)、記憶體使用情況 (%MEM)、程序執行時間 (TIME+) 以及完整的命令列 (COMMAND)。
-c 選項顯示啟動每個程序的完整命令列。例如,對於 PID 1,命令是 /sbin/init splash。對於 PID 123,命令是 /usr/bin/dockerd -H fd://。這有助於檢視傳遞給程序的確切引數。
5. 啟用安全模式
top -s
-s 選項用於安全模式操作。在安全模式下,一些可能有害的互動式命令會被禁用。當系統管理員在需要限制使用者操作的環境中執行 top 時,這個選項尤其有用。舉例說明:
示例:
下面舉例說明在這種情況下如何使用 -s 選項:
top -s 5
這條命令將啟動 top 並每 0.5 秒重新整理一次顯示。
6. 設定螢幕更新的延遲時間
top -d [seconds]
-d 選項用於指定螢幕更新之間的延遲時間,換句話說就是重新整理率。預設情況下,top 每 3.0 秒更新一次,但使用 -d 選項,可以將其設定為任何需要的間隔。
示例:
在 -d 選項後指定數字 20 ,每 20 秒更新一次輸出。
top -d 20
7. 設定迭代次數
top -n [number]
top -n 會更新 top 命令顯示 n 次,然後退出。如果你想定期對系統進行快速快照,這將非常有用。
更多 Linux 命令
下面羅列了最常見的一些 Linux 命令,您可以根據自己的需要查閱對應命令的詳細解析:
| 目錄操作 | rmdir · cd · pwd · exa · ls |
| 檔案操作 | cat · cp · dd · less · touch · ln · rename · more · head |
| 檔案系統操作 | chown · mkfs · locate |
| 網路 | ping · curl · wget · iptables · mtr |
| 搜尋和文字處理 | find · grep · sed · whatis · ripgrep · fd · tldr |
| 系統資訊和管理 | env · history · top · who · htop · glances · lsof |
| 使用者和會話管理 | screen · su · sudo · open |
此外,我們還整理 Linux 命令列大全,以幫助大家全面深入地學習 Linux。

評論留言