在 GitHub 和 GitLab 上,不斷有來自世界各地的開源應用程式和工具湧現。其中有全新的應用程式,也有針對現有各種被廣泛使用的 Linux 程式的替代方案。在本文件中,我會介紹一些針對 top 工具(也就是命令列工作管理員程式)的替代方案。
top 工具的替代方案
在本文中,將會介紹以下 6 種 top
工具的替代方案:
- Htop
- Vtop
- Gtop
- Gotop
- Ptop
- Hegemon
如果後續有更多類似的工具,原作者會在原文進行更新。如果你對此有興趣,可以持續關注。
Htop
htop
是一個流行的開源跨平臺互動式程式管理器,也是我最喜歡的系統活動監控工具。htop
是對原版 top
工具的擴充套件。它最初只是用於 Linux 系統,後來開發者們不斷為其新增對其它類 Unix 作業系統的支援,包括 FreeBSD 和 Mac OS。htop
還是一個自由開源軟體,它基於 ncurses 並按照 GPLv2 釋出。
和原版的 top
工具相比,htop
工具有這些優勢:
htop
比top
啟動更快htop
支援橫向滾動和縱向滾動瀏覽程式列表,以便看到所有的程式和完整的命令列- 在
top
工具中進行殺死程式、更改程式優先順序這些操作時,需要輸入程式 ID,而在htop
工具中則不需要輸入 - 在
htop
中可以同時殺死多個程式 - 在
top
中每次輸入一個未預設的鍵都要等待一段時間,尤其是在多個鍵組成轉義字串的時候就更麻煩了
在很多 Linux 發行版的預設軟體倉庫中,都帶有了 htop
。
在基於 Arch 的作業系統中則可以執行以下命令來安裝 htop
:
1 |
$ sudo pacman -S htop |
在基於 Debian 的作業系統使用以下命令:
1 |
$ sudo apt install htop |
在使用 RPM 軟體管理的作業系統使用以下命令:
1 |
$ sudo dnf install htop |
或者
1 |
$ sudo yum install htop |
在 openSUSE 系統中:
1 |
$ sudo zypper in htop |
用法
不帶任何引數執行 htop
時,會顯示如下畫面:
1 |
$ htop |
從圖上可以看出,htop
會在介面頂部顯示記憶體、交換空間、任務總數、系統平均負載、系統正常執行時間這些常用指標,在下方則和 top
一樣顯示程式列表,並且將程式的 ID、使用者、程式優先順序、程式 nice 值、虛擬記憶體使用情況、CPU 使用情況、記憶體使用情況等資訊以多列顯示出來。如果你想詳細瞭解這些資料的含義,可以在這裡閱讀參考。
和 top
不同的是,htop
支援對不同的操作使用專有的按鍵。以下列出一些用於與 htop
互動的快捷鍵:
F1
、h
、?
:進入幫助介面。F2
、Shift+s
:進入設定介面。在設定介面中可以配置儀表板介面頂部顯示哪些資料,以及設定顏色方案、顯示列、顯示順序等等多種引數。F3
、/
:在程式列表中進行搜尋。F4
、\:進入篩選模式。輸入一個字串,篩選出包含這個字串的程式。進入篩選模式後再按一次
F4
或者ESC
可以退出篩選模式。F5
、t
:切換預設顯示模式和樹型顯示模式,在樹型顯示模式下按+
可以檢視子樹。F6
、<、
>
:依次按照程式 ID、使用者、程式優先順序、程式 nice 值、CPU 使用率、記憶體使用率排序顯示。F7
、]
:提高所選程式的優先順序。F8
、[
:降低所選程式的優先順序。F9
、k
:殺死所選程式。可以用↑
/↓
鍵選擇不同的程式並按F9
殺死程式。F10
、q
: 退出htop
以上這些快捷鍵都在 htop
介面底部顯示。
需要注意的是,這其中有一些快捷鍵可能會與已有的快捷鍵發生衝突。例如按 F2
之後可能沒有進入 htop
的設定介面,而是開始了對終端視窗的重新命名。在這種情況下,你可能要更改一下快捷鍵的設定。
除了以上列出的快捷鍵以外,還有一些帶有其它功能的快捷鍵,例如:
u
可以選擇顯示某個使用者的程式。Shift+m
可以按照記憶體使用量對程式列表排序。Shift+p
可以按照 CPU 使用量對程式列表排序。Shit+t
可以按照程式啟動時間對程式列表排序。CTRL+l
重新整理介面。
htop
的所有功能都可以在啟動後通過快捷鍵來呼叫,而不需要在啟動的時候帶上某個引數。當然,htop
也支援帶引數啟動。
例如按照以下方式啟動 htop
就可以只顯示某個使用者的程式:
1 |
$ htop -u |
更改介面自動重新整理的時間間隔:
1 |
$ htop -d 10 |
看,htop
確實比 top
好用多了。
想了解 htop
的更多細節,可以查閱它的手冊頁面:
1 |
$ man htop |
Vtop
vtop
是 top
工具的另一個替代方案。它是一個使用 NodeJS 編寫的、自由開源的命令列介面系統活動監視器,並使用 MIT 許可證釋出。vtop
通過使用 unicode 中的盲文字元來繪製 CPU 和記憶體使用情況的視覺化圖表。
在安裝 vtop
之前,需要先安裝 NodeJS。如果還沒有安裝 NodeJS,可以按照這個教程進行安裝。
NodeJS 安裝完畢之後,執行以下命令安裝 vtop
:
1 |
$ npm install -g vtop |
安裝好 vtop
就可以執行以下命令開始監控了。
1 |
$ vtop |
顯示介面如下:
如上圖所示,vtop
介面和 top
、htop
都有所不同,它將不同的內容分別以多個框的佈局顯示。另外在介面底部也展示了用於與 vtop
互動的所有快捷鍵。
vtop
有這些快捷鍵:
dd
:殺死一個程式。↑
、k
:向上移動。↓
、j
:向下移動。←
、h
:放大圖表。→
、l
:縮小圖表。g
:跳轉到程式列表頂部。Shift+g
:跳轉到程式列表底部。c
:以 CPU 使用量對程式排序。m
:以記憶體使用量對程式排序。
想要了解更多關於 vtop
的細節,可以查閱它的專案主頁或者 GitHub 倉庫。
Gtop
gtop
和 vtop
一樣,都是一個使用 NodeJS 編寫、在 MIT 許可下發布的系統活動監視器。
執行以下命令安裝 gtop
:
1 |
$ npm install gtop -g |
然後執行以下命令啟動:
1 |
$ gtop |
顯示介面如下:
gtop
有一個優點,就是它會以不同的顏色來顯示不同的模組,這種表現形式非常清晰明瞭。
主要的快捷鍵包括:
p
:按照程式 ID 對程式排序。c
:按照 CPU 使用量對程式排序。m
:按照記憶體使用量對程式排序。q
、Ctrl+c
:退出。
想要了解更多關於 gtop
的細節,可以查閱它的 GitHub 倉庫。
Gotop
gotop
也是一個完全自由和開源的圖表式系統活動監視器。顧名思義,它是在受到 gtop
和 vtop
的啟發之後用 Go 語言編寫的,因此也不再對其展開過多的贅述了。如果你有興趣瞭解這個專案,可以閱讀《gotop:又一個圖表式系統活動監視器》這篇文章。
Ptop
有些人對 NodeJS 和 Go 語言的專案可能不太感冒。如果你也是其中之一,你可以試一下使用 Python 編寫的 ptop
。它同樣是一個自由開源的、在 MIT 許可下發布的系統活動監視器。
ptop
同時相容 Python2.x 和 Python3.x,因此可以使用 Python 的軟體包管理器 pip
輕鬆安裝。如果你沒有安裝 pip
,也可以參考這個教程進行安裝。
安裝 pip
之後,執行以下命令就可以安裝 ptop
:
1 |
$ pip install ptop |
又或者按照以下方式通過原始碼安裝:
1 2 3 4 |
$ git clone https://github.com/darxtrix/ptop $ cd ptop/ $ pip install -r requirements.txt # install requirements $ sudo python setup.py install |
如果需要對 ptop
進行更新,可以這樣操作:
1 |
$ pip install --upgrade ptop |
即使你不執行更新,ptop
也會在第一次啟動的時候提示你是否需要更新到最新的版本。
現在可以看一下啟動 ptop
後的介面。
1 |
$ ptop |
就像下面這樣:
ptop
的快捷鍵包括以下這些:
Ctrl+k
:殺死一個程式。Ctrl+n
:按照記憶體使用量對程式排序。Ctrl+t
:按照程式啟動時間對程式排序。Ctrl+r
:重置所有資料。Ctrl+f
:對程式進行篩選,輸入程式的名稱就能夠篩選出符合條件的程式。Ctrl+l
:檢視所選程式的詳細資訊。g
:跳轉到程式列表頂部。Ctrl+q
:退出。
ptop
還支援更改顯示主題。如果你想讓 ptop
更好看,可以選擇你喜歡的主題。可用的主題包括以下這些:
- colorful
- elegant
- simple
- dark
- light
如果需要更換主題(例如更換到 colorful 主題),可以執行以下命令:
1 |
$ ptop -t colorful |
使用 -h
引數可以檢視幫助頁面:
1 |
$ ptop -h |
想要了解更多關於 ptop
的細節,可以查閱它的 GitHub 倉庫。
Hegemon
hegemon
是一個使用 Rust 編寫的系統活動監視器,如果你對 Rust 感興趣,也可以瞭解一下。我們最近有一篇關於 hegemon
的文章,想要詳細瞭解的讀者不妨閱讀。
總結
以上就是關於 top
工具的 6 個替代方案。我並不會說它們比 top
更好或者可以完全替代 top
,但多瞭解一些類似的工具總是好的。你有使用過這些工具嗎?哪個是你最喜歡的?歡迎在評論區留言。