一、htop 簡介
This is htop, an interactive process viewer for Linux. It is a text-mode application (for console or X terminals) and requires ncurses.
Comparison between htop and top
- In 'htop' you can scroll the list vertically and horizontally to see all processes and complete command lines.
- In 'top' you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).
- 'htop' starts faster ('top' seems to collect data for a while before displaying anything).
- In 'htop' you don't need to type the process number to kill a process, in 'top' you do.
- In 'htop' you don't need to type the process number or the priority value to renice a process, in 'top' you do.
- 'htop' supports mouse operation, 'top' doesn't
- 'top' is older, hence, more used and tested.
htop 是Linux系統中的一個互動的進程查看器,一個文字模式的應用程式(在控制台或者X終端中),需要ncurses。
與Linux傳統的top相比,htop更加人性化。它可讓使用者互動式操作,支援顏色主題,可橫向或縱向滾動瀏覽進程列表,並支援滑鼠操作。
與top相比,htop有以下優點:
- 可以橫向或縱向滾動瀏覽進程列表,以便看到所有的進程和完整的命令列。
- 在啟動上,比top 更快。
- 殺進程時不需要輸入進程號。
- htop 支援滑鼠操作。
- top 已經很老了。
htop 官網:http://htop.sourceforge.net/
二、htop 安裝
a. 源碼包安裝
# tar zxvf htop-1.0.2.tar.gz
# cd htop-1.0.2
# ./configure
# make && make install
若出現錯誤:
configure: error: You may want to use --disable-unicode or install libncursesw.
則需安裝 ncurses-devel
# yum install ncurses-devel
b. RHEL/CentOS 安裝
可以通過 yum install htop 來安裝它,但前提是要添加epel 的yum源,具體請參考 CentOS yum 源的配置與使用。
# rpm -ivh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL //匯入key
# yum install htop
三、htop 參數
鍵入htop 命令,開啟htop。
# htop
上面左上方顯示CPU、記憶體、交換區的使用方式,右邊顯示任務、負載、開機時間,下面就是進程即時狀況。
下面是 F1~F10 的功能和對應的字母快速鍵。
Shortcut Key |
Function Key |
Description |
中文說明 |
h, ? |
F1 |
Invoke htop Help |
查看htop使用說明 |
S |
F2 |
Htop Setup Menu |
htop 設定 |
/ |
F3 |
Search for a Process |
搜尋進程 |
\ |
F4 |
Incremental process filtering |
增量進程過濾器 |
t |
F5 |
Tree View |
顯示樹形結構 |
<, > |
F6 |
Sort by a column |
選擇排序方式 |
[ |
F7 |
Nice - (change priority) |
可減少nice值,這樣就可以提高對應進程的優先順序 |
] |
F8 |
Nice + (change priority) |
可增加nice值,這樣就可以降低對應進程的優先順序 |
k |
F9 |
Kill a Process |
可對進程傳遞訊號 |
q |
F10 |
Quit htop |
結束htop |
命令列選項(COMMAND-LINE OPTIONS)
-C --no-color 使用一個單色的色彩配置
-d --delay=DELAY 設定延遲更新時間,單位秒
-h --help 顯示htop 命令協助資訊
-u --user=USERNAME 只顯示一個給定的使用者的過程
-p --pid=PID,PID… 只顯示給定的PIDs
-s --sort-key COLUMN 依此列來排序
-v –version 顯示版本資訊
互動式命令(INTERACTIVE COMMANDS)
上下鍵或PgUP, PgDn 選定想要的進程,左右鍵或Home, End 移動欄位,當然也可以直接用滑鼠選定進程;
Space 標記/取消標幟一個進程。命令可以作用於多個進程,例如 "kill",將應用於所有已標記的進程
U 取消標幟所有進程
s 選擇某一進程,按s:用strace追蹤進程的系統調用
l 顯示進程開啟的檔案: 如果安裝了lsof,按此鍵可以顯示進程所開啟的檔案
I 倒轉排序次序,如果排序是正序的,則反轉成倒序的,反之亦然
+, - When in tree view mode, expand or collapse subtree. When a subtree is collapsed a "+" sign shows to the left of the process name.
a (在有多處理器的機器上) 設定 CPU affinity: 標記一個進程允許使用哪些CPU
u 顯示特定使用者進程
M 按Memory 使用排序
P 按CPU 使用排序
T 按Time+ 使用排序
F 跟蹤進程: 如果排序次序引起選定的進程在列表上到處移動,讓選定條跟隨該進程。這對監視一個進程非常有用:通過這種方式,你可以讓一個進程在螢幕上一直可見。使用方向鍵會停止該功能。
K 顯示/隱藏核心線程
H 顯示/隱藏使用者線程
Ctrl-L 重新整理
Numbers PID 尋找: 輸入PID,游標將移動到相應的進程上
四、htop 使用
4.1. 顯示內建協助
滑鼠點擊Help或者按F1 顯示內建協助
4.2. htop 設定
滑鼠點擊Setup或者按下F2 之後進入htop 設定的頁面,Meters 頁面設定了頂端的一些資訊顯示,頂端的顯示又分為左右兩側,到底能顯示些什麼可以在最右側那欄新增,要新增到上方左側(F5)或是右側(F6)都可以,這就是個人設定的範圍了。這裡多加了一個時鐘。
上方左右兩欄的顯示方式分為Text Bar Graph Led 四種,我就把 cpu memory swap 改成文字模式顯示,然後右欄的改成Bar 顯示,clock 用LED方式顯示。資料顯示都差不多,只是這樣看有點不習慣了。
關於Display options 的設定,可要根據管理者自己的需要來設定。
顏色選擇,除了基本的顏色顯示之外,htop 還提供了換面板的功能,其實也只是改變一些色彩顯示的設定,雖然說不能自訂到細部的顏色顯示,但是至少提供了幾種風格可以選擇。
最後一項的設定是調整 Columns 的顯示,就是在一般htop 指令進來希望可以看到的什麼樣的資料及資訊,欄位的調整可以在這邊做個人化的設定,一般使用系統預設值就好了。
4.3. 搜尋進程
滑鼠點擊Search 或者按下F3 或者輸入"/", 輸入進程名進行搜尋,例如搜尋ssh
4.4. 過濾器
按下F4,進入過濾器,相當於關鍵字搜尋,不區分大小寫,例如過濾dev
4.5. 顯示樹形結構
輸入"t"或按下F5,顯示樹形結構,意思跟pstree 差不多,能看到所有程式樹狀執行的結構,這對於系統管理來說相當方便,理清程式是如何產生的,當然樹狀結構的瀏覽也可以依照其他資料來排序。
4.6. 選擇排序方式
按下F6 就可以選擇依照什麼來排序,最常排序的內容就是cpu 和memory 吧!
4.7 操作進程
F7、F8分別對應nice-和nice+,F9對應kill給進程發訊號,選好訊號斷行符號就OK了
4.8. 顯示某個使用者的進程,在左側選擇使用者
輸入"u",在左側選擇使用者
五、Alias top
也許你用慣了top,我們也可以用top來開啟htop。
編輯/root/.bashrc檔案,添加如下代碼
if [ -f /usr/local/bin/htop ]; then alias top=’/usr/local/bin/htop’fi
# source /root/.bashrc