Linux運維基礎之htop命令詳解

Linux運維基礎之htop命令詳解

htop 命令是 Hisham’s top 的首字母縮寫,它是一個功能強大的工具,可提供執行系統的動態實時檢視。與傳統的 top 命令不同,htop 提供了互動性更強、更友好的使用者介面,可顯示所有程序、CPU 使用率、記憶體和其他重要系統統計資訊的完整概覽。

對於需要監控系統效能、管理程序或排除故障的人來說,它尤其方便。與 top 命令類似,htop 可與 psvmstat 等其他命令一起使用,以全面瞭解系統行為。

如何安裝 htop 命令

許多 Linux 發行版通常不預設包含 htop,因此你可能需要安裝它。以下是如何在一些常見的 Linux 發行版上安裝和解除安裝 htop

對於基於 Debian 的系統(如 Ubuntu):

要安裝 htop,請開啟終端並執行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update
sudo apt-get install htop
sudo apt-get update sudo apt-get install htop
sudo apt-get update
sudo apt-get install htop
要解除安裝 htop,可以使用:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get remove htop
sudo apt-get remove htop
sudo apt-get remove htop
對於基於 Red Hat 的系統(如 Fedora):

要安裝 htop,請使用:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo dnf install htop
sudo dnf install htop
sudo dnf install htop
要解除安裝 htop,可以使用:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo dnf remove htop
sudo dnf remove htop
sudo dnf remove htop
對於基於 SUSE 的系統:

要安裝 htop,請使用:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo zypper install htop
sudo zypper install htop
sudo zypper install htop
要解除安裝 htop,可以使用:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo zypper remove htop
sudo zypper remove htop
sudo zypper remove htop

適用於 Arch Linux:

要安裝 htop,請使用:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo pacman -S htop
sudo pacman -S htop
sudo pacman -S htop
要解除安裝 htop,可以使用:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo pacman -R htop
sudo pacman -R htop
sudo pacman -R htop

如何使用 htop

1. 檢視系統程序和資源

語法:htop

說明:顯示系統程序和資源使用情況的互動式概覽。

示例:htop

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1 [||||||| 16.7%] Tasks: 34, 60 thr; 2 running
2 [|||||||| 20.0%] Load average: 0.07 0.02 0.00
Mem[||||||||||||||| 512M/1000M] Uptime: 02:23:45
Swp[||| 50M/100M]
1 [||||||| 16.7%] Tasks: 34, 60 thr; 2 running 2 [|||||||| 20.0%] Load average: 0.07 0.02 0.00 Mem[||||||||||||||| 512M/1000M] Uptime: 02:23:45 Swp[||| 50M/100M]
1  [|||||||                    16.7%]     Tasks: 34, 60 thr; 2 running
2  [||||||||                   20.0%]     Load average: 0.07 0.02 0.00 
Mem[|||||||||||||||       512M/1000M]     Uptime: 02:23:45
Swp[|||                      50M/100M]

該輸出顯示了兩個核心的 CPU 使用率、記憶體使用率、交換使用率、任務數、平均負載和系統正常執行時間。條形圖直觀地顯示了資源消耗情況。

2. 按使用者過濾程序

語法:htop -u USERNAME

說明:僅顯示特定使用者擁有的程序。

示例:htop -u john

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
1234 john       20   0 1024M  100M 9000 S  5.0 10.0  0:00.91 /usr/bin/app

該輸出顯示使用者 john 擁有的程序,包括 PID、優先順序、虛擬記憶體、常駐記憶體、共享記憶體、CPU 和記憶體百分比等詳細資訊。

3. 按記憶體使用情況排序程序

語法:htop -s PERCENT_MEM

說明:顯示按記憶體使用情況排序的程序。

示例:htop -s PERCENT_MEM

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /usr/bin/heavyapp
1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /usr/bin/heavyapp 1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
5678 alice      20   0 2048M  200M 9000 S 10.0 20.0  0:01.23 /usr/bin/heavyapp
1234 john       20   0 1024M  100M 9000 S  5.0 10.0  0:00.91 /usr/bin/app

該輸出顯示按記憶體使用情況排序的程序,佔用記憶體最多的程序排在最前面。它包括 PID、使用者、優先順序、虛擬記憶體和常駐記憶體、CPU 和記憶體百分比等詳細資訊。

4. 只顯示帶有特定字串的程序

語法:htop -p PID[,PID...]

說明:僅顯示具有指定程序 ID (PID) 的程序。

示例:htop -p 1234,5678

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /usr/bin/heavyapp
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app 5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /usr/bin/heavyapp
PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
1234 john       20   0 1024M  100M 9000 S  5.0 10.0  0:00.91 /usr/bin/app
5678 alice      20   0 2048M  200M 9000 S 10.0 20.0  0:01.23 /usr/bin/heavyapp

此輸出僅顯示指定 PID( 12345678 )的程序,以及使用者、優先順序、記憶體使用量、CPU 和記憶體百分比等詳細資訊。

5. 以樹形檢視顯示程序

語法:htop -t

說明:以樹形檢視顯示程序,顯示父子關係。

示例:htop -t

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PID USER Command
1 root /sbin/init
`-1234 john \_ /usr/bin/app
`-5678 alice \_ /usr/bin/heavyapp
PID USER Command 1 root /sbin/init `-1234 john \_ /usr/bin/app `-5678 alice \_ /usr/bin/heavyapp
PID USER      Command
1   root      /sbin/init
 `-1234 john   \_ /usr/bin/app
    `-5678 alice  \_ /usr/bin/heavyapp

該輸出以樹形檢視顯示程序,說明程序之間的關係。 父程序被列在首位,子程序在其下方縮排。

6. 顯示命令的絕對路徑

語法:htop -c

說明:顯示每個程序正在執行的命令的絕對路徑。

示例:htop -c

輸出:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app
5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /opt/custom/heavyapp
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1234 john 20 0 1024M 100M 9000 S 5.0 10.0 0:00.91 /usr/bin/app 5678 alice 20 0 2048M 200M 9000 S 10.0 20.0 0:01.23 /opt/custom/heavyapp
PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
1234 john       20   0 1024M  100M 9000 S  5.0 10.0  0:00.91 /usr/bin/app
5678 alice      20   0 2048M  200M 9000 S 10.0 20.0  0:01.23 /opt/custom/heavyapp

該輸出顯示了每個程序正在執行的命令的完整絕對路徑,提供了有關可執行檔案位置的更詳細資訊。

更多 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。

評論留言