
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
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
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 - 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 - 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
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
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
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
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 命令,您可以根據自己的需要查閱對應命令的詳細解析:
此外,我們還整理 Linux 命令列大全,以幫助大家全面深入地學習 Linux。
評論留言