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 editionTerminal 是什麼:你打開的那個視窗裡,每一樣東西的名字
你照著安裝教學做了第一步:打開 Terminal。
然後你看到一個視窗,深色背景,左上角有一行字,結尾是一個符號,游標在閃。
教學的下一步是「輸入以下指令」。你輸入了,按了 Enter,畫面多了幾行字。但你不知道那幾行字是成功還是失敗,也不知道接下來該看哪裡。
這篇解決的就是這件事。它不是指令清單 —— 十行保命指令的清單與常見錯誤對照表在 Terminal、Shell、CLI:三個詞的差別 裡已經有了,這篇不重複。
這篇做的是把你眼前那個視窗逐行拆開,告訴你每一樣東西叫什麼名字、它在告訴你什麼。認得畫面,比背指令重要得多。
那個視窗裡其實有兩個東西
多數教學把 Terminal 當成一個東西講,所以新手永遠搞不清。它其實是兩層:
外面那一層是視窗,就是你打開的那個應用程式。它負責顯示字、接收你的鍵盤輸入、讓你調整字體大小與顏色。它自己什麼都不會做。這一層叫 Terminal(終端機)。
裡面跑著一個程式,負責讀懂你打的那一行、然後去執行。這一層叫 Shell(殼層)。macOS 近年預設是 zsh,多數 Linux 是 bash,Windows 常見的是 PowerShell。
「用打字而不是點滑鼠來指揮電腦」這種介面形式,叫 CLI(命令列介面)(命令列介面)。
這個區分不是學究式的。它有一個很實際的後果:錯誤訊息通常來自 shell,不是來自那個視窗。 而 zsh、bash、PowerShell 的語法不一樣 —— 變數怎麼寫、路徑用哪個符號分隔、引號的規則都不同。你從網路上抄到一段指令卻跑不動,最常見的原因是它是寫給另一種 shell 的。
怎麼知道自己在哪一種 shell 裡:看提示字元(下一段),或直接問它。
為什麼打字可以做事
這是最多人問、最少人回答的問題。答案比你以為的簡單,而且它不是魔法,是一個非常短的協議。
你打了一行字,按 Enter。shell 做的事是:
- 把這一行按空白切成好幾個詞。
- 第一個詞是「要跑哪個程式」。 shell 拿這個詞去一份地址清單(PATH 與路徑)裡找,找到對應的執行檔。
- 剩下的詞全部當成「交給那個程式的參數」。 shell 自己不解讀它們,原樣遞過去。
- 啟動那個程式,把它的輸出印在畫面上,等它結束。
- 印出提示字元,換你說了。
就這五步。所以:
- shell 不懂英文。 它不懂「幫我列出所有檔案」。它只懂「第一個詞是程式名,後面是參數」。
command not found的意思是第 2 步失敗了 —— 那份地址清單裡沒有任何一個資料夾含有叫這個名字的程式。它不代表你打錯了字(雖然也可能是),更不代表程式壞了。- 路徑含空格一定要加引號,因為第 1 步是按空白切的。
cd My Projects會被切成三個詞:cd、My、Projects,於是 shell 以為你要 cd 到名叫My的地方,還多給了一個它不需要的參數。 - 同一行指令在不同資料夾跑,結果會不同 —— 因為很多程式處理的是「目前所在目錄」裡的檔案。這就是下一段。
逐行拆解你看到的畫面
這是一個典型的 shell 工作階段(示意範例,不是任何特定工具的真實輸出):
Last login: Tue Sep 30 21:04:11 on ttys003
you@your-mac ~ % pwd
/Users/you
you@your-mac ~ % ls
Desktop Documents Downloads notes.txt
you@your-mac ~ % cd notes
you@your-mac ~/notes % ls
draft.md ideas.md todo.txt
you@your-mac ~/notes % cd ..
you@your-mac ~ %
逐行講:
Last login: ... —— 視窗打開時的問候語,告訴你上次登入是什麼時候。跟你要做的事完全無關,直接跳過。 很多人卡在這一行的 ttys003 上,那只是這個終端機連線的編號。
you@your-mac ~ % —— 這就是提示字元(prompt)。它由三個資訊組成:
| 部分 | 意思 |
|---|---|
you | 你的使用者帳號名稱 |
your-mac | 這台電腦的名稱 |
~ | 你目前所在的目錄(~ 是家目錄的縮寫) |
% | 結束符號:換你說了 |
zsh 的結束符號通常是 %,bash 通常是一般使用者顯示 $、管理員顯示 #,PowerShell 則是 PS 開頭加上目前路徑。這是分辨自己在哪種 shell 最快的方法。
pwd —— 你輸入的指令。畫面上它跟提示字元在同一行,所以看起來像是「you@your-mac ~ % pwd」一整串。前面那一段不是你打的,是它印的。 這個混淆非常常見。
/Users/you —— pwd 的輸出。它是「目前所在目錄」的完整地址。
第二個提示字元 you@your-mac ~ % —— 代表上一條指令已經結束,shell 準備好接下一條了。這是判斷「它跑完了沒有」的依據:看到新的提示字元出現,就是跑完了。沒有新提示字元、游標停在那裡閃,代表它還在跑(或卡住了)。
cd notes 之後,提示字元變成 you@your-mac ~/notes % —— 這是整段最重要的一個觀察:提示字元裡的第三段變了。 它在即時告訴你現在站在哪裡。你不需要記得自己做過什麼,看它就好。
cd .. 之後又變回 ~ —— .. 是「上一層」的意思。
那個看不見、卻一直在生效的東西
上面的 ~ 或 ~/notes,正式名稱是目前所在目錄(current directory),也叫工作目錄。
它是新手最常付出代價的一個概念,因為它在畫面上只佔提示字元裡的一小段,很容易被忽略,但它決定了幾乎所有指令的行為。
具體來說:
ls列的是這裡的檔案,不是你整個電腦的檔案cat notes.txt找的是這裡的notes.txt- 你叫 AI 工具「讀一下 report.pdf」,它找的是它被啟動時所在的那個目錄裡的 report.pdf
- 你建立的檔案會落在這裡
於是就有了那個經典事故:你在 A 資料夾建了一個檔案,然後 cd 到 B 資料夾,接著 ls 沒看到它,結論是「檔案不見了」。檔案好好的在 A。
所以有一個習慣值得從第一天就養成:每次要跑一個會動到檔案的指令之前,先看一眼提示字元,或跑一次 pwd。 一半的「指令跑完東西不見了」都是在錯誤的資料夾裡跑的。
關於「家目錄」~、絕對路徑與相對路徑、以及為什麼 Windows 用反斜線而 macOS 用斜線,有一整篇在講:檔案路徑。
五個指令,各自回答一個你一定會問的問題
十行清單在那篇保命指令的文章裡。這裡只挑五個,而且只講一件事:每個回答的是哪個問題,以及它印出來的東西該怎麼讀。
一、pwd —— 「我現在在哪?」
pwd
印出一行完整路徑,例如 /Users/you/projects。就這樣,不會有別的東西。
什麼時候用:任何會動到檔案的動作之前。以及任何「檔案找不到」的錯誤之後的第一個動作。
二、ls —— 「這裡有什麼?」
ls
ls -l
ls -la
裸 ls 只印名字。加 -l 變成一行一個檔案,並在名字左邊多出一串資訊;加 -a 才會列出以 . 開頭的隱藏檔(.env、.gitignore 這類,而 AI 工具的設定常常就是這種檔案)。
ls -l 的每一行怎麼讀(示意範例):
-rw-r--r-- 1 you staff 2048 Sep 30 21:04 notes.txt
| 部分 | 意思 |
|---|---|
| 開頭第一個字元 | - 是檔案,d 是資料夾 |
| 接著九個字元 | 權限位:誰可以讀、寫、執行。見 File Permission(檔案權限) |
you staff | 擁有者與群組 |
2048 | 檔案大小(位元組) |
Sep 30 21:04 | 最後修改時間 |
notes.txt | 名字 |
看到 Permission denied 的時候,你要看的就是那九個字元和擁有者 —— 不是去加 sudo。
三、cd —— 「去別的地方」
cd notes # 進到這裡底下的 notes 子資料夾
cd ~/projects # 到家目錄底下的 projects
cd .. # 回上一層
cd # 不加任何參數=回家目錄
cd - # 回到你上一次所在的目錄
cd 成功時什麼都不會印。 這是最多人以為「它沒反應」的地方 —— 它成功了,只是安靜。判斷方式:看提示字元裡的第三段有沒有變。
四、cat —— 「這個檔案裡寫什麼?」
cat notes.txt
把整個檔案內容印在畫面上。適合小檔案(設定檔、幾十行的筆記)。
檔案很長時會刷滿整個視窗、看不完。這種情況用 head -20 檔名(只看前 20 行)或 tail -20 檔名(只看後 20 行,看記錄檔最常用)。
五、--help —— 「這個指令自己會說什麼?」
某指令 --help
man ls
--help 是絕大多數命令列程式都支援的旗標,它印出這個程式自己的用法說明。man 是 macOS/Linux 的完整手冊(按 q 離開)。
這是最該養成習慣的一個。 它比搜尋引擎準,而且它講的一定是你手上這個版本的行為 —— 網路上搜到的說明可能對應另一個版本,而版本差異是指令跑不動的第二大原因。
三個對這個視窗的誤解
一、「我怕打錯把它弄壞。」
你打的字如果沒有對應到任何程式,shell 只會回一句「找不到這個指令」,然後什麼都不做。它不會壞、不會中毒、不需要重開機。
真正會出事的是會動檔案的指令 —— rm(刪除)、mv(移動/改名)、> (把輸出寫進檔案,會蓋掉原內容)。這些需要你主動打出來,而且多數會先問你。所以規則很簡單:看到 rm、sudo、chmod 777、> 這幾個關鍵字就停下來,先搞懂再按 Enter。 這件事在 那篇保命指令 裡有更完整的說明。
二、「它沒有輸出,代表失敗了。」
反過來。命令列工具的傳統是成功的時候安靜,失敗的時候才出聲。cd 成功不印東西、mv 成功不印東西、cp 成功不印東西。
想確認到底成功沒有,看結束代碼:跑完之後立刻 echo $?(PowerShell 是 $LASTEXITCODE),0 是成功。見 Exit Code(結束代碼),以及 怎麼讀一則錯誤訊息。
三、「我把視窗關掉,裡面在跑的東西就停了。」
不一定。背景處理程序與自己脫離視窗的服務會繼續跑 —— 繼續佔記憶體、佔網路連線,如果它在呼叫付費 API,繼續燒你的錢。見 Process(處理程序)。
要停一個正在跑的東西,用 Ctrl + C(這是中斷前景程序,不是關視窗)。
三十秒確認它在動
打開終端機,依序輸入這四條,每條按一次 Enter:
pwd
ls
cd
pwd
你應該看到的:
- 第一條印出一個路徑(多半是
/Users/你的帳號或C:\Users\你的帳號) - 第二條印出一串檔案與資料夾名字
- 第三條什麼都不印
- 第四條印出一個路徑
如果第一次和第四次印出的路徑一樣,代表你原本就在家目錄;如果不一樣,代表你原本在別的地方,而第三條把你帶回家了。
跑完這四條,你已經確認了三件事:視窗開了、shell 在回應你、你知道自己在哪。這三件事是之後每一個安裝教學的起點。
下一步
- 十行指令的完整清單、Windows 對照寫法、以及常見錯誤結尾行對照表:Terminal、Shell、CLI:三個詞的差別,與十行保命指令
- 路徑、
~、斜線與反斜線、含空格的檔案名:檔案路徑 - 畫面出現紅字時:怎麼讀一則錯誤訊息
- 指令跑不動時的判斷流程:裝完沒反應:五個檢查,照順序做完再重裝
- 先把詞認完:開始之前:你只需要先認識這 20 個詞
More in Learn
- Complete LangChain Tutorial 2026: Building Enterprise-Grade LLM Applications from Scratch
- MemoryHub v2.0 System Architecture In-Depth Analysis: From Capture Daemon to MCP Real-Time Memory Capture
- May 2026 LLM API Pricing Landscape: Complete Comparison of DeepSeek, Qwen, GLM, Kimi, MiniMax, and Doubao
- Cross-Channel Memory Hub: A Full Record of the Memory System Architecture Design for OpenClaw Agent