Linux top 命令詳解

2021-03-02 計算機與網絡安全

Linux中的top命令顯示系統上正在運行的進程。它是系統管理員最重要的工具之一。被廣泛用於監視伺服器的負載。在本篇中,我們會探索top命令的細節。top命令是一個交互命令。在運行top的時候還可以運行很多命令。我們也會探索這些命令。


1. Top 命令輸出


首先,讓我們了解一下輸出。top命令會顯示系統的很多信息。我們需要理解不同部分輸出的意義:默認運行時,top命令會顯示如下輸出:



前幾行水平顯示了不同系統參數的概括,接下來是進程和它們在列中的屬性。


1.1 系統運行時間和平均負載



top命令的頂部顯示與uptime命令相似的輸出。


這些欄位顯示:


當前時間

系統已運行的時間

當前登錄用戶的數量

相應最近5、10和15分鐘內的平均負載。


可以使用』l』命令切換uptime的顯示。

1.2 任務



第二行顯示的是任務或者進程的總結。進程可以處於不同的狀態。這裡顯示了全部進程的數量。除此之外,還有正在運行、睡眠、停止、殭屍進程的數量(殭屍是一種進程的狀態)。這些進程概括信息可以用’t』切換顯示。


1.3 CPU 狀態



下一行顯示的是CPU狀態。 這裡顯示了不同模式下的所佔CPU時間的百分比。這些不同的CPU時間表示:


us, user: 運行(未調整優先級的) 用戶進程的CPU時間

sy,system: 運行內核進程的CPU時間

ni,niced:運行已調整優先級的用戶進程的CPU時間

wa,IO wait: 用於等待IO完成的CPU時間

hi:處理硬體中斷的CPU時間

si: 處理軟體中斷的CPU時間

st:這個虛擬機被hypervisor偷去的CPU時間(譯註:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。


可以使用’t』命令切換顯示。


1.4 內存使用



接下來兩行顯示內存使用率,有點像』free』命令。第一行是物理內存使用,第二行是虛擬內存使用(交換空間)。


物理內存顯示如下:全部可用內存、已使用內存、空閒內存、緩衝內存。相似地:交換部分顯示的是:全部、已使用、空閒和緩衝交換空間。


內存顯示可以用’m』命令切換。


1.5 欄位/列



在橫向列出的系統屬性和狀態下面,是以列顯示的進程。不同的列代表下面要解釋的不同屬性。


默認上,top顯示這些關於進程的屬性:


PID

進程ID,進程的唯一標識符


USER

進程所有者的實際用戶名。


PR

進程的調度優先級。這個欄位的一些值是』rt』。這意味這這些進程運行在實時態。


NI

進程的nice值(優先級)。越小的值意味著越高的優先級。


VIRT

進程使用的虛擬內存。


RES

駐留內存大小。駐留內存是任務使用的非交換物理內存大小。


SHR

SHR是進程使用的共享內存。


S

這個是進程的狀態。它有以下不同的值:


D – 不可中斷的睡眠態。

R – 運行態

S – 睡眠態

T – 被跟蹤或已停止

Z – 殭屍態


%CPU

自從上一次更新時到現在任務所使用的CPU時間百分比。


%MEM

進程使用的可用物理內存百分比。


TIME+

任務啟動後到現在所使用的全部CPU時間,精確到百分之一秒。


COMMAND

運行進程所使用的命令。


還有許多在默認情況下不會顯示的輸出,它們可以顯示進程的頁錯誤、有效組和組ID和其他更多的信息。


2. 交互命令


我們之前說過top是一個交互命令。上一節我們已經遇到了一些命令。這裡我們會探索更多的命令。


2.1 『h』: 幫助


首先,我們可以用』h』或者』?』顯示交互命令的幫助菜單。



2.2 『』 或者 『』: 刷新顯示


top命令默認在一個特定間隔(3秒)後刷新顯示。要手動刷新,用戶可以輸入回車或者空格。


2.3 『A』: 切換交替顯示模式


這個命令在全屏和交替模式間切換。在交替模式下會顯示4個窗口(譯註:分別關注不同的欄位):


Def (默認欄位組)

Job (任務欄位組)

Mem (內存欄位組)

Usr (用戶欄位組)


這四組欄位共有一個獨立的可配置的概括區域和它自己的可配置任務區域。4個窗口中只有一個窗口是當前窗口。當前窗口的名稱顯示在左上方。(譯註:只有當前窗口才會接受你鍵盤交互命令)



我們可以用』a』和』w』在4個 窗口間切換。』a』移到後一個窗口,』w』移到前一個窗口。用』g』命令你可以輸入一個數字來選擇當前窗口。



2.4 『B』: 觸發粗體顯示


一些重要信息會以加粗字體顯示。這個命令可以切換粗體顯示。



2.5 『d』 或『s』: 設置顯示的刷新間隔


當按下』d』或’s』時,你將被提示輸入一個值(以秒為單位),它會以設置的值作為刷新間隔。如果你這裡輸入了1,top將會每秒刷新。



2.6 『l』、『t』、『m』: 切換負載、任務、內存信息的顯示


這會相應地切換頂部的平均負載、任務/CPU狀態和內存信息的概況顯示。


不顯示平均負載


不顯示CPU概況


不顯示內存和交換內存概況


上面三個全不顯示


2.7 『f』: 欄位管理


用於選擇你想要顯示的欄位。用』*』標記的是已選擇的。


管理顯示列


上下光標鍵在欄位內導航,左光標鍵可以選擇欄位,回車或右光標鍵確認。


按'<『移動已排序的欄位到左邊,』>』則移動到右邊。


2.8 『R』: 反向排序


切換反向/常規排序。


2.9 『c』: 觸發命令


切換是否顯示進程啟動時的完整路徑和程序名。


完整命令路徑


2.10 『i』: 空閒任務


切換顯示空閒任務。


不顯示空閒命令


2.11 『V』: 樹視圖


切換樹視圖。


樹視圖


2.12 『Z』: 改變配色


按下』Z』向用戶顯示一個改變top命令的輸出顏色的屏幕。可以為8個任務區域選擇8種顏色。


定製顏色


下面顯示的是4中顏色顯示的top視圖。


彩色顯示


2.13 『z』: 切換彩色顯示


切換彩色,即打開或關閉彩色顯示。


2.14 『x』 或者 『y』


切換高亮信息:』x』將排序欄位高亮顯示(縱列);』y』將運行進程高亮顯示(橫行)。依賴於你的顯示設置,你可能需要讓輸出彩色來看到這些高亮。


X 和 Y高亮


2.15 『u』: 特定用戶的進程


顯示特定用戶的進程。你會被提示輸入用戶名。空白將會顯示全部用戶。


raghu的進程


2.16 『n』 或 『#』: 任務的數量


設置最大顯示的任務數量


設置最大顯示的任務數量


2.17 『k』: 結束任務


top命令中最重要的一個命令之一。用於發送信號給任務(通常是結束任務)。


殺死一個任務


2.18 『r』: 重新設置優先級


重新設置一個任務的調度優先級。


3. 命令行選項


這些命令行選項與上面討論的命令大多相同。top的輸出可以用命令交互操作,但是你也可以帶參數運行top來設置你想要的效果。


3.1 -b: 批處理模式


-b選項以批處理模式啟動top命令。當你想要在文件中保存輸出時是很有用的。


3.2 -c: 命令/程序名 觸發


如上面所討論到的命令,這個選項會以上次記住的程序/命令顯示的狀態顯示(是否顯示完整路徑)。


3.3 -d: 設置延遲間隔


設置top的顯示間隔(以秒計)。比如:


$ top -d 1


將會以1秒的刷新間隔啟動top。


3.4 -i: 切換顯示空閒進程


這個選項設置top命令的上一次記住的相反的『i』狀態。


3.5 -n: 設置迭代數量


用-n選項,你可以設置top退出前迭代的次數。


$ top -n 3


將會在刷新輸出3次後退出。


3.6 -p: 監控特定的PID


你可以用-p選項監控指定的PID。PID的值為0將被作為top命令自身的PID。


3.7 -u 或 -U: 用戶名 或者 UID


可以用這些選項瀏覽特定用戶的進程。用戶名或者UID可以在選項中指定。-p、-u和-U選項是互斥的,同時只可以使用這其中一個選項。當你試圖組合使用這些選項時,你會得到一個錯誤:


$ top -p 28453 -u raghu

top: conflicting process selections (U/p/u)

英文:Linoxide,編譯:Linux中國/geekpi

相關焦點

  • 新手指南:詳解Linux Top 命令
  • 每天一個 Linux 命令(44):top命令
    top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序為止.比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最「敏感」的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定製文件中進行設定.
  • 如何使用Linux Top命令
    如果要退出命令,可以按q或使用將終止命令的Ctrl + c快捷鍵。查看top命令幫助top命令幫助將為您提供一個選項列表,您可以使用這些選項來自定義輸出以及在運行top命令時可以執行的功能。如果您希望top命令僅運行直到特定數量的輸出刷新,您可以使用以下命令:$ top -n [no-of-refreshes]例:如果在終端中輸入以下命令,則top命令將保持活動狀態,直到3次刷新,然後它將自動退出。$ top -n 3
  • Linux的30 個實例詳解 TOP 命令!
    在本篇中,我們會探索top命令的細節。top命令是一個交互命令。在運行top的時候還可以運行很多命令。我們也會探索這些命令。(譯註:不同發行版的top命令在各種細節有不同,如果發現不同時,請讀你的幫助手冊和命令內的幫助。)1. Top 命令輸出首先,讓我們了解一下輸出。top命令會顯示系統的很多信息。
  • 30個實例詳解Linux的TOP命令
    英文:Linoxide,編譯:Linux中國/geekpilinux.cn
  • linux中的14個top命令示例
    按 (Shift+O) 通過欄位字母對欄位進行排序,例如按 a 用 PID 對進程進行排序的字母 (Process ID)。使用top對進程 ID 進行排序鍵入任意鍵以返回到已排序的主窗口PID順序如下圖所示。按 q 退出退出窗口。排序進程 ID3. 顯示特定用戶進程使用帶有u選項的top命令將顯示特定User過程細節。
  • Linux 命令拆解丨top 命令
    1. 第一行——基本信息如果要手動清理殭屍進程,需要找到其父進程,kill掉父進程後,LInux的 init 進程將接管該殭屍進程(linux中所有的子進程都需要有父進程,當父進程被kill後,其所有子進程將過繼給init進程),init進程隔一段時間去調用wait(),來清除殭屍進程。3. CPU使用情況
  • Linux下top命令詳解
    1、簡介top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows
  • linux top命令使用詳解
    top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。下面詳細介紹它的使用方法。工具(命令)名稱top2.工具(命令)作用顯示系統當前的進程和其他狀況; top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到用戶終止該程序為止.
  • 每天一個 Linux 命令(35):top 命令
    top命令是 Linux 下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於 Windows 的任務管理器。下面詳細介紹它的使用方法。top 是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。
  • 必備linux命令詳解
    我們的服務一般都是在linux系統運行,因此了解一些關於linux命令是必須。Heap dump file created歡迎指正文中錯誤參考文章Centos7之Systemd(Service文件)詳解[7]Reference[1]shell教程及腳本編寫: https://juejin.cn/post/6973878462268801031[2]sed教程-linux命令: https://juejin.cn/post/6972759213894434846
  • Linux系統shell的top命令
    在linux的top命令裡的cpu信息是什麼意思呢?
  • Linux curl命令詳解
    一、curl命令語法: 二、curl命令參數詳解:由於linux curl功能十分強大,所以命令參數十分多,下表只是愛E族(aiezu.com)帥選出來的部分參數,更多參數請運行「man curl」命令查看。
  • 【實例詳解】30 個Linux常用TOP命令
    在本篇中,我們會探索top命令的細節。top命令是一個交互命令。在運行top的時候還可以運行很多命令。我們也會探索這些命令。(譯註:不同發行版的top命令在各種細節有不同,如果發現不同時,請讀你的幫助手冊和命令內的幫助。)1. Top 命令輸出首先,讓我們了解一下輸出。top命令會顯示系統的很多信息。
  • Linux 之 top 命令
    Linux 的 top 命令top命令比較像Windows裡面的任務管理器,提供一個動態實時的系統狀態檢測,可以檢測實時顯示內存
  • Linux之kill命令
    Linux中的kill命令用來終止指定的進程(terminate a process)的運行,是Linux下進程管理的常用命令。通常,終止一個前臺進程可以使用Ctrl+C鍵,但是,對於一個後臺進程就須用kill命令來終止,我們就需要先使用ps/pidof/pstree/top等工具獲取進程PID,然後使用kill命令來殺掉該進程。
  • Linux之free命令
    緩衝區只不過是一種概念上比較特殊的頁高速緩存罷了那麼為什麼 free 命令不直接稱為 cache 而非要寫成 buff/cache? 這是因為緩衝區和頁高速緩存的實現並非天生就是統一的。在 linux 內核 2.4 中才將它們統一。更早的內核中有兩個獨立的磁碟緩存:頁高速緩存和緩衝區高速緩存。前者緩存頁面,後者緩存緩衝區。當你知道了這些故事之後,輸出中列的名稱可能已經不再重要了。
  • 【linux】常用命令之scp命令
    今天需要在兩個伺服器之間進行數據copy,但是居然忘了linux命令,於是這裡記錄下,加深記憶!linux命令之scp命令用於linux之間文件或者目錄的複製。scp的全稱為secure copy,是基於ssh登錄進行安全的遠程文件或目錄copy命令,當然只能用於linux系統之間。
  • Linux Top 命令指南
    top 命令允許用戶監視 Linux 上的進程和系統資源使用情況,它是系統管理員工具箱中最有用的工具之一,並且在每個發行版中都預裝了它。與 ps 等其他命令不同,它是交互式的,我們可以瀏覽進程列表、終止進程,等等。本文中,我們將了解如何使用 top 命令。Getting startedtop 命令非常簡單,只需要在終端中輸入 top 即可。
  • Linux之ps命令
    【Linux常用命令速查手冊】關注【入門小站】,後臺回復 「1001」 自取。Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。