如何使用 Linux top 命令(並理解它的輸出)

已發表: 2022-01-29
Linux 筆記本電腦上的終端提示符。
Fatmawati Achmad Zaenuri/Shutterstock

Linux top命令是類 Unix 操作系統的中堅力量之一。 它的實用顯示包含有關係統運行進程和資源使用情況的有用信息。 但是,您知道它還支持顏色、突出顯示甚至基本圖形嗎?

信息豐富的儀表板

top命令自 1984 年以來一直存在,並且有許多變體。 在本文中,我們運行 Ubuntu 18.04 並應用了所有補丁,並且版本為 3.3.12 的top 。 我們還交叉引用了另外兩台測試計算機上的所有內容,一台運行 Fedora,另一台運行 Manjaro。

10 個適合初學者的基本 Linux 命令
相關10 個適合初學者的基本 Linux 命令

默認的top顯示在終端窗口中填充盡可能多的信息。 信息是管理的先決條件,所以這是一件好事。 優秀系統管理員的特徵之一是能夠識別新出現的問題並在它們影響服務之前對其進行處理。 top為您提供了一個包含許多不同系統指標的儀表板,可幫助您做到這一點。

最好將顯示器描述為功能性而非直觀性,並且縮寫比比皆是。 當您第一次遇到top時,會感覺局促、神秘和令人反感。 但是,通過幾次按鍵,您可以根據對您來說重要的內容調整顯示的內容和格式。

檢查您的頂部版本

要檢查您擁有的 top 版本,請在終端窗口中鍵入以下內容:

 頂部 -v 

廣告

如果您的版本落後於 3.3.12,它可能不支持我們將要介紹的所有功能。

默認顯示

您可以通過鍵入以下內容並按“Enter”開始top

 最佳

默認顯示包含兩個信息區域:摘要區域(或儀表板)和任務區域(或流程列表)。 默認情況下, top每三秒更新一次它的顯示——你會注意到它有輕微的閃爍。

儀表板上的第一行數字包括時間、計算機運行了多長時間、登錄的人數以及過去一分鐘、五分鐘和 15 分鐘的平均負載。 第二行顯示任務的數量及其狀態:運行、停止、睡眠或殭屍。

第三行顯示以下中央處理單元 (CPU) 值:

  • us: CPU 為“用戶空間”中的人執行進程所花費的時間。
  • sy:運行系統“內核空間”進程所花費的時間。
  • ni:使用手動設置的 nice 值執行進程所花費的時間。
  • id: CPU 空閒時間量。
  • wa: CPU 等待 I/O 完成所花費的時間。
  • hi:服務硬件中斷所花費的時間。
  • si:服務軟件中斷所花費的時間。
  • st:由於運行虛擬機而損失的時間(“竊取時間”)。

第四行顯示物理內存的總量(以千字節為單位),以及有多少是空閒的、使用的、緩衝的或緩存的。

第五行顯示交換內存的總量(也以千字節為單位),以及有多少是空閒的、已使用的和可用的。 後者包括預計可從緩存中恢復的內存。

廣告

進程列表中的列標題如下:

  • PID:進程 ID。
  • USER:進程的所有者。
  • PR:進程優先級。
  • NI:這個過程的美好價值。
  • VIRT:進程使用的虛擬內存量。
  • RES:進程使用的常駐內存量。
  • SHR:進程使用的共享內存量。
  • S:過程的狀態。 (有關此字段可以採用的值,請參見下面的列表)。
  • %CPU:自上次更新以來進程使用的 CPU 時間份額。
  • %MEM:使用的物理內存份額。
  • TIME+:任務使用的總 CPU 時間,以百分之一秒為單位。
  • COMMAND:命令名稱或命令行(名稱+選項)。

內存值以千字節為單位顯示。 COMMAND列在屏幕外,在右側​​——它不適合上圖,但我們很快就會看到它。

進程的狀態可以是以下之一:

  • D:不間斷睡眠
  • R:跑步
  • S:睡覺
  • T:跟踪(停止)
  • Z:殭屍

按 Q 退出top

滾動顯示

您可以按向上或向下箭頭、Home、End 和 Page Up 或 Down 鍵來上下移動並訪問所有進程。

按向左或向右箭頭可將進程列表橫向移動。 這對於查看任何不適合終端窗口範圍的列很有用。

在下圖中,我們按了幾次右箭頭以查看COMMAND列。

更改數值單位

讓我們將顯示單位更改為合理的值。 按大寫 E 循環顯示這些選項中用於顯示內存值的單位:kibibytes、mebibytes、gibibytes、tebibytes、pebibytes 和 exbibytes。 使用的單位是第 4 行和第 5 行的第一項。

廣告

按小寫字母“e”對進程列表中的值執行相同的操作:kibibytes、mebibytes、gibibytes、tebibytes 和 pebibytes。

我們按 E 將儀表板內存單位設置為千兆字節,按“e”將進程列表內存單位設置為兆字節。

更改摘要內容

您可以更改儀表板中線條的顯示設置或完全刪除它們。

按 l 打開或關閉負載匯總行(第一行)。 我們刪除了下圖中的負載摘要行。

如果您有一個多核 CPU,請按 1 更改顯示並查看每個 CPU 的單獨統計信息。 我們的計算機上有四個 CPU。 我們按 1 看看他們每個人的工作有多努力。

廣告

當然,這會在終端窗口中佔用更多的屏幕空間。

您可以按“t”將 CPU 顯示交換為簡單的 ASCII 圖形,顯示每個 CPU 的使用百分比。

對於每個 CPU, top顯示三個數字和圖形。 從左到右,數字如下:

  • usni的組合百分比(用戶空間+具有非標準 nice 設置的任務)。
  • sy百分比(內核空間)。
  • 總數(四捨五入為整數值)。

再次按“t”將圖形顯示更改為實心塊字符。

再次按“t”以完全刪除 CPU 顯示和任務摘要行。

按“m”通過不同的顯示選項循環內存和交換內存行。 第一次按 ASCII 圖形代替統計數據。

再按一次將圖形更改為阻止字符。

廣告

再次按“m”以完全刪除 CPU 線。

如果需要,您可以同時查看 CPU 和內存圖表。 只需按“t”和“m”,直到獲得所需的組合。

顏色和突出顯示

您可以按“z”為顯示屏添加顏色。

當您想到top時,您可能不會想到彩色顯示和 ASCII 圖形,但它們是內置的。

按“y”突出顯示進程列表中正在運行的任務。 按“x”突出顯示用於對進程列表進行排序的列。 您可以通過按“b”在粗體和反轉文本突出顯示之間切換。

按列排序

默認情況下,進程列表按%CPU列排序。 您可以通過按以下方式更改排序列:

  • P: %CPU列。
  • M: %MEM列。
  • N: PID列。
  • T: TIME+列。
廣告

在下圖中,進程列表按PID列排序。

查看完整的命令行

按“c”在顯示進程名稱和完整命令行之間切換命令列。

要查看由其他進程啟動或生成的進程“樹”,請按 V。

請參閱單個用戶的流程

按“u”查看單個用戶的進程。 系統將提示您輸入名稱或 UID。

鍵入要監視的人的 UID 的名稱。 我們將輸入“dave”並點擊“Enter”。 現在,任務區域中的唯一進程屬於用戶dave

僅查看活動任務

按 I 僅查看活動任務。

自上次更新以來未消耗任何 CPU 的任務將不會顯示。

設置顯示多少進程

無論任務是否處於活動狀態,按“n”將顯示限制為一定數量的行。 系統將提示您輸入要顯示的進程數。

廣告

我們輸入 10 並按 Enter,因此任務區域中出現了 10 個進程。

重新定義一個過程

您可以按“r”來更改進程的 nice 值(優先級)。 系統將提示您輸入進程 ID。 只需按 Enter 即可使用進程窗口頂部的任務的進程 ID。 我們輸入 7800,它恰好是 Firefox 實例的進程 ID。

點擊 Enter 後,系統會提示您輸入新的 nice 值以應用於該過程。 我們鍵入 15,然後按 Enter。

新的 nice 值會立即應用於進程。

相關:如何在 Linux 上使用 nice 和 renice 設置進程優先級

殺死一個進程

按“k”殺死一個進程。 然後系統會提示您輸入要終止的進程 ID。 事實上,您可以向進程發送任何信號。 我們將終止已停止響應的進程 7879。

廣告

您將有機會輸入要發送的信號。 您可以按名稱或編號指定它。 如果您只是按 Enter, top會發送SIGTERM (kill)信號。

一旦你按下 Enter,信號就會被發送到進程。

相關:如何從 Linux 終端殺死進程

自定義顯示

您還可以自定義顯示的顏色和列。 我們將更改用於提示的顏色,默認為紅色。

按大寫 Z 進入顏色設置頁面。 屏幕頂部顯示不同顯示元素使用的顏色。 要指示要更改的顯示元素,請按以下其中一項(區分大小寫):

  • S : 摘要數據區。
  • M :消息和提示。
  • H :列標題。
  • T :進程列表中的任務信息。

我們按 M 來更改提示。

要選擇顏色,請按以下數字之一:

  • 0:黑色。
  • 1:紅色。
  • 2:綠色。
  • 3:黃色。
  • 4:藍色。
  • 5:洋紅色。
  • 6:青色。
  • 7:白色。

我們按 6 使用青色。

按 Enter 保存您的設置。 輸入提示現在將以您選擇的顏色顯示。

廣告

我們還可以更改字段管理屏幕中顯示的列。 按 F 進入字段管理屏幕。

顯示的字段旁邊有一個星號 ( * ),並以粗體突出顯示。 按向上和向下箭頭在字段列表中移動突出顯示。

如果您將突出顯示從一列的底部移開,它將出現在下一列的頂部(除非您位於最後一列的底部)。 如果您將其移出一列的頂部,它將出現在前一列的底部(除非您位於第一列的頂部)。

我們將突出顯示移動到COMMAND條目,然後按“d”刪除星號 ( * )。 然後我們移動到UID條目並按“d”在該條目旁邊放置一個星號。 這意味著不會顯示COMMAND列,但會顯示UID列。

當突出顯示在UID列上時,我們按“s”對UID列上的進程列表進行排序。

按 Enter 保存您的設置,然後按“q”離開字段管理屏幕。

廣告

UID列替換了COMMAND列,進程列表按它排序。

替代顯示模式

這在全屏模式下效果最佳。 按 A 在進程列表中顯示四個區域,然後按“a”從一個區域移動到另一個區域。

每個區域都有不同的列集合,但每個區域也可以通過“字段管理”屏幕進行自定義。 這使您可以在每個區域中顯示不同信息的全屏自定義顯示,並能夠按不同的列對每個區域進行排序。

其他擊鍵

以下是您可能會在top中發現有用的其他一些鍵:

  • W :保存您top設置和自定義,以便下次啟動時它們仍然有效。
  • d :設置新的顯示刷新率。
  • Space : 強制top現在刷新它的顯示。

頂級香蕉

正如我們所見, top有相當多的曲目。 其他程序,例如htop ,也受到了它的啟發,但它們都有自己的看法。

廣告

但是, top到處都安裝了。 當您去企業查看網絡或服務器時,您經常會被告知在實時服務器上絕對不能更改任何內容。 客戶端制定規則,因此您必須使用已安裝的內容。

即使您更喜歡不同的監控工具,您也應該了解top 。 遲早,您可能會發現自己處於您可以訪問的所有位置。

相關:適合開發人員和愛好者的最佳 Linux 筆記本電腦