如何列出 Linux 中正在運行的進程並對其進行管理

已發表: 2022-04-04

列出進程 Linux - 開發人員每天使用各種應用程序並在終端中運行命令。
在您的 Linux 系統上,您使用的每個應用程序或您執行的每個命令都會產生一個進程或任務。 為了保證最佳系統性能,您需要以系統管理員的身份控制進程。

多任務處理是 Linux 操作系統以及現代計算機最吸引人的特性之一。 因此,許多程序可以同時運行。

目錄

Linux 中的進程是什麼?

當您在 Linux 中執行命令或打開應用程序時,它會啟動一個進程。 另一方面,應用程序為各種任務生成和執行多個進程,而命令只創建一個。

例如,當您啟動 Visual Studio Code 編輯器時,您啟動的進程只會在您退出或終止 Visual Studio Code 應用程序時停止(或終止)。

同樣,當您在終端中運行命令(例如 curl ifconfig.me)時,它會啟動一個進程,該進程僅在命令完成或終止時才會終止。

默認情況下,每個新進程都作為前台進程啟動。 這意味著它必須在新過程開始之前完成。 在後台運行的進程允許您同時處理其他事情。

列出 Linux 中正在運行的進程

使用以下三個命令之一列出 Linux 中的進程:

  • ps 顯示所有進程的列表; 它也可以與選項一起使用以獲得更詳細的輸出。
  • top 顯示當前活動進程的實時列表,並允許您通過終止、停止、更改優先級等方式與它們進行交互。
  • htop 用戶友好輸出的即時結果,有機會參與流程

使用ps作為命令

ps 命令(進程狀態)創建所有當前活動進程的快照。 因此,與 Windows 任務管理器不同,結果是可預測的。

ps 命令的語法如下:

ps [options]

以下是一些最常用的 ps 命令選項:

  • a:列出對所有用戶造成問題的所有進程。
  • -A,-e:顯示系統上所有進程的列表。
  • -a:列出所有進程,不包括會話領導者(進程ID與會話* ID相同的進程)和與終端無關的進程。
  • -d:除會話負責人外,列出所有進程。
  • --deselect, -N:從列表中刪除任何不滿足用戶定義條件的進程。
  • f:使用 ASCII 藝術來顯示進程層次結構。
  • -j:以作業格式顯示輸出。
  • T:列出所有連接到該終端的進程。
  • r:僅列出當前處於活動狀態的進程。
  • u:增加輸出的大小以包含更多信息,例如 CPU 和內存使用情況。
  • -u:定義要為其列出進程的用戶。
  • x:包括沒有 TTY 的進程。

不帶任何選項運行ps命令會產生類似於

默認輸出中包含以下類別:

  • PID : 進程標識號
  • TTY :進程正在運行的終端。
  • TIME :在計算機上花費的總時間(CPU 使用總量)。
  • CMD :啟動進程的命令的名稱

一起使用 a、u 和 x 選項會產生更詳細的輸出

ps aux

擴展輸出現在包括以下新類別:

  • USER:這是執行進程的人的名字。
  • %CPU: CPU 正在使用的時間比例。
  • %MEM:使用的內存比例。
  • VSZ:進程的總虛擬內存使用量,以千字節為單位。
  • RSS: “代表 Resident Set Size”,指的是一個進程使用的 RAM 量。
  • STAT:進程的當前狀態。
  • START:進程開始的時間。

以分層順序顯示當前正在執行的進程。

ps -axjf

在 Linux 中使用top命令,可以獲取當前正在運行的進程列表

top 命令以 CPU 消耗降序提供當前活動進程的列表。 這意味著使用最多資源的進程位於列表頂部:

top

在默認的三秒刷新率下,top 命令的輸出實時刷新。 以下類別出現在 top 命令的輸出中:

  • PID(進程標識號):這是一個標識一個
  • USER:這是執行進程的人的名字。
  • PR:進程的調度優先級。
  • NI:過程的不錯的價值,較低的價值意味著較高的重要性。
  • VIRT:進程使用的虛擬內存量。
  • RES:進程使用的常駐(物理)內存量。
  • SHR:進程的共享內存使用總量。
  • R(運行)或S(睡眠):進程的狀態
  • %CPU: CPU 正在使用的時間百分比。
  • %MEM:內存使用百分比
  • TIME+:使用的 CPU 時間總量。
  • COMMAND:啟動程序的命令。

使用以下選項與 top 命令交互或在運行時修改輸出格式:

top [option]

  • c:顯示整個過程路徑。
  • d:將輸出刷新率設置為自定義值(以秒為單位)。
  • h:調出幫助菜單。
  • k:提供殺死進程的PID。
  • M:按使用的內存量對列表進行排序。
  • N:根據PID對列表進行排序。
  • r:提供PID來改變進程的nice值(優先級)。
  • z:通過更改輸出顏色突出顯示正在運行的進程。
  • q:退出命令提示符。

在 Linux 中使用htop命令,您可能會看到當前正在運行的進程。

htop 命令產生與 top 命令相同的結果,但以更用戶友好和易於理解的方式。

由於大多數 Linux 發行版中不包含此命令,因此您需要自己安裝它:

sudo apt install htop

使用

htop

命令提供以下輸出:

列出進程 Linux

要與 htop 命令交互,請按以下鍵:

使用方向鍵垂直和水平滾動進程列表。

  • F1:顯示幫助菜單。
  • F2:打開 htop 命令設置
  • F3:鍵入進程的名稱以查找它。
  • F4:按名稱對進程列表進行排序。
  • F5:選擇流程層次結構是顯示為排序列表還是樹。
  • F6:按列排序進程
  • F7:降低進程的 nice 值(提高其優先級)。
  • F8:降低進程的 nice 值(降低其優先級)。
  • F9:終止當前選擇的進程。
  • F10:關閉命令提示符。

結論

了解如何列出 Linux 操作系統中所有正在運行的進程至關重要。 當您需要管理流程時,這種專業知識會派上用場。
要自定義輸出和命令行為,請使用可用的命令選項。