Agentic Research

This article is not yet available in English. You are reading the Traditional Chinese original. The English edition will appear here once it is translated.

Browse articles that do have an English edition

Terminal、Shell、CLI:三個詞的差別,與十行保命指令

2026/09/3011 min readBryan Chan閱讀中文原文
Topics入門CLITerminal

安裝教學的第一行幾乎總是「打開 Terminal,輸入以下指令」。如果你不知道 Terminal 是哪個視窗、也不知道輸入之後該看到什麼,後面每一步都是在賭。

這篇解決三件事:把 Terminal(終端機)、Shell(殼層)、CLI(命令列介面) 三個詞分清楚;給你十行真的夠用的指令;以及教你怎麼讀錯誤訊息 —— 最後這個最省時間。

不需要任何程式基礎。

三個詞的差別

這三個詞被混用得最厲害,但分清楚只要一句話:

詞它是什麼類比
Terminal(終端機)一個視窗,讓你在裡面打字電視機
Shell(殼層)視窗裡解讀並執行你指令的程式電視機裡的頻道
CLI(命令列介面)「用文字操作電腦」這種介面形式「看電視」這件事本身

所以「打開 Terminal」是打開那個視窗;視窗裡跑的是 shell(macOS 近年預設 zsh,多數 Linux 是 bash,Windows 常見 PowerShell);而你正在用的這種介面形式叫 CLI。

為什麼這個差別重要:錯誤訊息通常來自 shell,不是來自 Terminal。而 bash 和 PowerShell 的語法不一樣 —— 變數寫法、路徑分隔符、引號規則都不同。網路上抄到一段指令卻跑不動,最常見的原因就是它是寫給另一種 shell 的。

打開它

  • macOS:Command + 空白鍵,輸入 Terminal,Enter。(或在 應用程式 → 實用工具 裡)
  • Windows:開始功能表輸入 PowerShell。要跑 bash 語法的教學,需要 WSL 或 Git Bash。
  • Linux:Ctrl + Alt + T,多數發行版通用。

打開後你會看到一行字,結尾是 % 或 $。那個符號叫提示字元(prompt),意思是「換你說了」。

步驟

這十行不是「學命令列」,是讀懂安裝教學所需要的最小集合。全部在 macOS / Linux 通用;Windows PowerShell 的對應寫法列在括號裡。

一、我在哪

pwd                    # PowerShell: Get-Location

印出你目前所在的資料夾完整路徑。每次要跑一個會動到檔案的指令之前,先跑這個。 一半的「指令跑完東西不見了」事故,都是在錯誤的資料夾裡跑的。

二、這裡有什麼

ls -la                 # PowerShell: Get-ChildItem -Force

列出目前資料夾的內容。-a 包含以 . 開頭的隱藏檔(.env、.gitignore 這類),-l 是詳細格式(權限、大小、日期)。

三、去別的地方

cd notes               # 進到 notes 子資料夾(相對路徑)
cd ~/projects          # 到家目錄下的 projects(~ 代表家目錄)
cd ..                  # 回上一層
cd                     # 不加參數=回家目錄

路徑含空格時要加引號:cd "My Projects"。不加引號會被讀成兩個參數,然後報錯。

四、看一個檔案的內容

cat notes.txt          # 全部印出來
head -20 notes.txt     # 只看前 20 行
tail -20 app.log       # 只看後 20 行(看 log 最常用)

五、找東西

grep "error" app.log              # 在這個檔裡找含 error 的行
grep -r "TODO" .                  # 在目前資料夾遞迴找
find . -name "*.mdx"              # 找檔名符合的檔案

六、這個程式裝在哪

which claude           # PowerShell: where.exe claude

這是 command not found 的第一個診斷動作。 有印出路徑代表程式裝好了,只是 PATH 與路徑 裡沒有它;完全沒印才代表真的不在。搞反了就會開始無意義地重裝。

七、環境變數

echo $SHELL                      # 我用的 shell(PowerShell: $env:SHELL)
echo $OPENAI_API_KEY             # 這個變數有沒有設
export OPENAI_API_KEY="sk-xxx"   # PowerShell: $env:OPENAI_API_KEY="sk-xxx"

export 只在當前這個視窗有效,關掉就沒了。要長期有效得寫進 ~/.zshrc 或 ~/.bashrc,或者放進專案的 .env 檔(見 環境變數與 .env)。

在 A 視窗 export、卻在 B 視窗跑程式,是「我明明設了 key 卻說沒有」最常見的原因。

八、跑一個程式,看它的退出碼

some-command
echo $?                # PowerShell: $LASTEXITCODE

0 代表成功,非 0 代表失敗(見 Exit Code(結束代碼))。腳本與 CI 都是靠這個數字判斷要不要繼續,不是靠讀輸出文字。

九、看說明

some-command --help
man ls                 # macOS / Linux 的完整手冊,q 離開

--help 是你最該養成習慣的指令。它比搜尋引擎準,而且一定是你手上這個版本的行為。

十、中斷與離開

Ctrl + C               # 中斷正在跑的東西(不是關視窗)
Ctrl + D               # 結束當前 shell(等於輸入 exit)
exit                   # 離開

一個指令卡住不動時,先按 Ctrl + C。它會停掉前景程序,視窗還在。

怎麼讀錯誤訊息

這是本篇最省時間的一段。新手看錯誤訊息的順序通常是錯的 —— 從第一行開始逐字讀,然後被淹沒。

正確的順序是倒過來:

  1. 先看最後一行。 多數工具把真正的結論放在最後,例如 Error: cannot find module 'xyz' 或 Permission denied。
  2. 找第一個 Error 或 error:。 中間幾百行常常是堆疊追蹤(stack trace),對你沒用;你要的是第一個出錯點。
  3. 找檔名與行號。 形如 File "app.py", line 42 或 src/main.ts:17:5。有行號就直接去看那一行。
  4. 只讀你看得懂的部分。 看不懂的中間段落直接跳過,不是你的問題。

幾種最常見的結論與對應動作:

最後一行長這樣通常是先做什麼
command not found沒裝,或裝了但 PATH 沒收錄which 那個指令(見第六行)
Permission denied檔案權限不對,或需要執行權ls -l 看權限;不要直接上 sudo
No such file or directory你在錯的資料夾,或路徑打錯pwd 確認位置
ModuleNotFoundErrorPython 套件沒裝,或裝到了别的環境確認你在正確的 venv 裡
EADDRINUSE / address already in use那個 port 已經被佔用換 port,或找出佔用的程序
401 / UnauthorizedAPI key 錯或沒設檢查 API Key 與環境變數
429超過速率限制等,或降低請求頻率

新手最貴的一個習慣

把網路上抄來的指令直接貼上執行,不看它會動到什麼。

這在多數情況下沒事,所以習慣會養成。直到某一天你貼到一行 rm -rf 開頭、或 curl … | bash 的東西 —— 前者會刪檔案,後者是「下載一段腳本然後立刻用你的權限執行它」,你完全不知道裡面寫了什麼。

養成兩個習慣就夠了:

  1. 看到 rm、sudo、curl … | bash、chmod 777、> /dev/ 這幾個關鍵字就停下來。 先搞懂再按 Enter。
  2. 跑之前先 pwd。 知道自己在哪,才知道指令會動到哪裡。

這跟 AI 工具特別相關:Agent 會幫你下指令,而你按同意。如果你看不懂它要下什麼,那個同意就沒有意義。這是 Permission Gate(權限閘門) 存在的原因 —— 但閘門只能擋住「危險的動作」,擋不住「你以為它安全」。

一個練習

十分鐘,做完你就有底了:

  1. 打開 Terminal,pwd 看自己在哪
  2. mkdir cli-practice && cd cli-practice 建一個練習資料夾進去
  3. echo "hello" > test.txt 建一個檔案
  4. cat test.txt 確認內容
  5. ls -la 看到它
  6. grep hello test.txt 找到那行
  7. cd .. 回上一層,pwd 確認位置變了
  8. rm -r cli-practice 清掉(注意:這一步會刪掉整個資料夾,先確認你 pwd 在對的地方)

這八步跑完,你已經用過本篇十行裡的七行。剩下的三行(which、echo $?、--help)會在你要裝第一個 AI 工具時自然用上。

下一步