---
title: ps aux:掌控系統 process 的利器
tags: [Tool, CLI, Linux, MacOS, Process]
---
# ps aux:掌控系統 process 的利器
[文章更新時間: 2026-02-23 16:27]

### 1. 簡介
`ps` (Process Status) 是 Unix-like 系統中用於報告當前進程快照的標準工具。而 `aux` 這一組參數組合(源自 BSD 風格)是最常用的搭配用法。它不像 `top` 或 `htop` 那樣動態更新,而是提供一個**靜態的、精確的**當前系統狀態清單,非常適合用於腳本分析或排查特定時刻的系統問題。
---
### 2. 優點
* **無需安裝**:幾乎預裝在所有 Linux 發行版和 macOS 中。
* **細粒度資訊**:從 CPU/記憶體佔用到進程啟動時間,資訊一應俱全。
* **適合自動化**:其輸出的純文字格式極易與 `grep`、`awk`、`sed` 等工具結合。
* **資源消耗極低**:相比圖形化監控工具,它對系統資源的佔用幾乎可以忽略不計。
---
### 3. 安裝步驟
這是一個內建工具,你通常**不需要安裝**。
* **Linux (Ubuntu/CentOS/Arch/etc.)**: 預裝在 `procps` 套件中。
* **macOS**: 系統內建,直接打開 `Terminal.app` 或 `iTerm2` 即可使用。
如果你發現系統中缺失(極少見的情況,如極簡 Docker 鏡像):
```bash
# Ubuntu/Debian
sudo apt update && sudo apt install procps
# CentOS/RHEL
sudo yum install procps-ng
```
---
### 4. 操作步驟
直接在終端機輸入:
```bash
ps aux
```
#### 欄位含義解讀:
| 欄位 | 說明 |
| --- | --- |
| **USER** | 進程的所有者。 |
| **PID** | 進程識別碼(Process ID),殺掉進程時常用。 |
| **%CPU** | 佔用的 CPU 運算能力百分比。 |
| **%MEM** | 佔用的實體記憶體百分比。 |
| **VSZ** | 虛擬記憶體大小 (KB)。 |
| **RSS** | 實際駐留記憶體大小 (KB)。 |
| **STAT** | 進程狀態(如 `R` 運行、`S` 睡眠、`Z` 殭屍)。 |
| **START** | 進程啟動的時間。 |
| **COMMAND** | 啟動該進程的完整指令。 |
---
### 5. 使用情境介紹
#### 情境 A:尋找並殺死「當掉」的程式
當你的 Chrome 或某個開發工具卡死時,你需要找到它的 PID:
```bash
ps aux | grep chrome
kill -9 <PID>
```
#### 情境 B:找出系統中的「記憶體怪獸」
想知道是誰吃掉了你的 RAM?
```bash
# 根據 %MEM 排序
ps aux --sort=-%mem | head -n 10
```
#### 情境 C:確認後台服務是否正在運行
例如確認 `nginx` 是否啟動:
```bash
ps aux | grep nginx
```
---
### 6. 進階用法
#### 技巧一:自定義輸出欄位
有時候 `aux` 給的資訊太多了,你可以自定義想要看的欄位,這在撰寫監控腳本時非常有用:
```bash
ps -eo pid,user,ppid,%mem,%cpu,comm --sort=-%cpu
```
#### 技巧二:查看線程級別的細節
如果你想看某個進程下所有的線程:
```bash
ps -aL
```
#### 技巧三:排除 grep 自身的進程
當你用 `grep` 搜尋時,通常會看到 `grep --color=auto ...` 這一列,透過這個小技巧可以過濾它:
```bash
ps aux | grep [n]ginx
```
*(註:利用正則表達式,讓 grep 搜尋 'nginx' 但匹配不到包含 'grep [n]ginx' 的字串)*
---
### 💡同類型工具推薦
雖然 `ps aux` 是經典,但如果想要有更好的互動性,我強烈建議你這個工具 {%preview https://hackmd.io/@steepinglogic/btop %}