系統進程管理: ps
, top
, htop
1. 指令 ps
— 查看進程的靜態快照
如果 Linux 是一家餐館,那進程就是廚房裡的主廚。這是一個可執行的程式實例,存在於內存中。當你從命令列運行應用程式或執行文件時,就會產生一個進程,這個進程會執行其任務直到結束。
從編程的角度來看,進程是由 Linux 核心管理的,每個進程都有一個唯一的標識符 — PID (Process ID)。
指令 ps
(process status) 是一個基本指令,用於查看進程列表。它可以給出當前系統進程的靜態快照。使用 ps
,可以查詢正在運行的進程的資訊,例如它們的 ID、擁有者、命令列和使用的資源。
基本語法
以下是基本指令:
ps
這會顯示當前終端中運行的進程。
但這樣看起來很無聊!來點有趣的:
ps aux
這裡:
a
— 顯示其他用戶的進程。u
— 增加一個更易讀的格式。x
— 包括未關聯終端的進程。
輸出範例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 22556 1044 ? Ss 12:34 0:01 /sbin/init
student 2345 0.1 0.2 34567 2048 pts/0 S+ 12:35 0:02 bash
student 4567 0.3 0.5 56789 5144 pts/0 R+ 12:36 0:03 ps aux
- USER: 運行進程的用戶。
- PID: 進程的標識符。
- %CPU: CPU 使用百分比。
- %MEM: 記憶體使用百分比。
- COMMAND: 出發進程的命令。
高級選項
查看進程的樹狀結構:
ps -ejH
這有助於了解哪些進程是其他進程的 "子進程"。
按 PID 過濾:
ps -p 1234
其中
1234
是你的 PID。只顯示指定進程。列出所有進程以及完整的命令列:
ps -ef
2. 指令 top
— 動態監控進程
top
就像進程的電視機一樣。你可以觀察進程如何即時變化。如果你正在運行伺服器或你的電腦開始「卡頓」,top
是你最好的朋友。通過它,你可以看到哪些進程佔用最多的 CPU 和記憶體。
使用基礎
只需在終端中輸入:
top
範例輸出:
- 頂部顯示系統「負載」。
- 中間部分展示任務資訊(總數、活動、休眠、殭屍)。
- 底部是關於記憶體的資訊。
- 最下方是一個進程列表,其中有許多有用的資訊,包括 PID、USER、%CPU 和 COMMAND。
在 top
中導航
- 按
k
鍵來結束一個進程。輸入 PID。 - 按
P
鍵以 CPU 排序進程。 - 按
M
鍵以記憶體使用率排序進程。 - 按
q
鍵退出。
3. 工具 htop
— 方便的介面
如果你覺得 top
太「原始」,歡迎使用 htop
。這是一個用於監控進程的視覺化介面。它是彩色的,支援滑鼠操作,而且容易理解。
安裝
如果你的系統沒有安裝 htop
,可以執行下面的命令安裝:
sudo apt-get install htop # 適用於基於 Debian 的發行版
sudo yum install htop # 適用於基於 RedHat 的發行版
啟動
要啟動 htop
,只需輸入:
htop
介面範例:
htop
的優點:
- 支援滾動進程列表。
- CPU、記憶體、swap 的顏色高亮顯示。
- 方便的鍵盤操作終止進程(例如,
F9
)。
4. 實作任務
任務 1: 找出最"貪心"的程序
- 打開
top
或htop
。 - 按 CPU 排序程序,找到它的 PID。
任務 2: 終止程序
- 使用
kill
來結束程序:kill <PID>
任務 3: 程序分析
- 使用
ps
分析程序的 PID:ps -p <PID> -o pid,user,%cpu,%mem,cmd
陷阱和建議
- 如果不確定程序是否對系統運作至關重要,不要終止它。例如,PID 為 1 的程序是 init,這是操作系統的核心。
htop
工具需要額外安裝,如果無法啟動,請檢查是否已安裝。- 注意權限問題。結束其他用戶啟動的程序可能需要管理員權限。
實際操作中,你會發現這些工具讓管理 Linux 的工作變得無比靈活且直觀。現在你就是程序的大老闆了!
GO TO FULL VERSION