Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

Console、Terminal、Shell 到底差在哪?一次搞懂三者的關係

最後更新:2026年4月8日基礎概念

如果你剛開始學程式,打開電腦看到那個黑黑的畫面,你可能聽過「Console」、「Terminal」、「Shell」這些詞。

有些人會把它們混著用,有些教學文章又好像在講不同的東西。

到底它們是什麼?有什麼差別?

這篇文章會從歷史開始講起,幫你一次搞清楚這三個詞的意思,以及它們之間的關係。

從大型主機時代說起:Console 和 Terminal 的由來

要理解 Console 和 Terminal,我們得先回到電腦剛發明的年代。

那個時候,不是每個人都有自己的電腦。

一間大學、一間銀行、或一家大公司,通常只有一台很大的電腦,叫做「大型主機(Mainframe)」。

當學生、教授、或員工需要用電腦的時候,他們不會直接走到那台大電腦前面操作。

他們會透過一個小型的硬體裝置,遠端連上那台大電腦。

這個小型硬體裝置,就叫做 Console(主控台)。

Console 是什麼?

你可以把 Console 想像成一台 PlayStation 遊戲機。

它就是一個硬體,由鍵盤、螢幕、和一個小處理器組成。

差別在於,PlayStation 跑的是遊戲,而早期的 Console 跑的是各種軟體。

其中最重要的一個軟體,就叫做 Terminal(終端機)。

Terminal 是什麼?

Terminal 是一個跑在 Console 上面的軟體。

它的功能很單純:幫你跟大型主機溝通。

你透過鍵盤輸入指令,Terminal 會把指令送到大型主機,大型主機處理完之後,再把結果送回來,顯示在你的螢幕上。

簡單來說:

  • Console = 硬體(鍵盤 + 螢幕 + 小處理器)
  • Terminal = 跑在 Console 上的軟體(負責跟大型主機溝通)

現代已經沒有真正的 Console 和 Terminal 了

現在每個人都有自己的電腦,不需要靠大型主機了。

所以真正的 Console(那個小硬體)已經不存在了。

真正的 Terminal(跟大型主機溝通的軟體)也不需要了。

但這兩個詞還是活著,而且現在它們指的是同一個東西:終端機模擬器(Terminal Emulator)。

終端機模擬器是什麼?

終端機模擬器就是你在電腦上打開的那個「黑色視窗」。

它模擬了以前 Terminal 的功能,讓你可以用打字的方式跟電腦互動。

常見的終端機模擬器有這幾個:

  • Terminal:macOS 內建的終端機模擬器
  • iTerm2:macOS 上很受歡迎的第三方終端機模擬器
  • Hyper:用 HTML、CSS、JavaScript 做的終端機模擬器,跨平台可用
  • VS Code 的整合式終端:直接內建在程式碼編輯器裡面的終端機

這就是為什麼你會聽到有人說「打開 Console」,也有人說「打開 Terminal」,其實他們講的是同一件事——打開終端機模擬器。

終端機模擬器只是外觀,真正在工作的是 Shell

這是很多初學者搞混的地方。

終端機模擬器只是一個圖形介面(GUI),它本身不會執行任何指令。

它負責的事情就是「畫面」相關的所有東西。

比如說,你看到的那個視窗的標題列、視窗的大小、背景顏色是黑色還是白色、字體用什麼、字體大小多少、游標長什麼樣子——這些全部都是終端機模擬器在管的。

你選擇不同的終端機模擬器,改變的就是這些外觀上的東西。

舉個例子,macOS 內建的 Terminal 預設是白色背景。

iTerm2 可以設定成半透明的背景。

Hyper 因為是用網頁技術做的,可以裝各種主題外掛讓畫面變得很花俏。

VS Code 的整合式終端則是直接嵌在編輯器裡面,跟你的程式碼在同一個畫面上。

但不管畫面長怎樣,當你在終端機裡面打了一行指令然後按下 Enter,終端機模擬器做的事情只有一件:把你打的那行字,轉交給背後的 Shell。

Shell 才是真正在工作的程式。

Shell 會做這幾件事:

  1. 讀取你的指令:你打了什麼字,Shell 會去解讀這行字是什麼意思。
  2. 執行指令:Shell 判斷完之後,會去呼叫對應的程式。比如你輸入 ls,Shell 就會去呼叫作業系統提供的程式,幫你列出目前資料夾裡面有哪些檔案。
  3. 回傳結果:程式執行完之後,Shell 會把結果送回來。
  4. 交給終端機模擬器顯示:終端機模擬器收到結果之後,就把它顯示在畫面上讓你看到。

所以整個流程是這樣的:

終端機模擬器從頭到尾都只負責「顯示」,Shell 才是那個真正在「做事」的角色。

這也是為什麼,不管你用哪個終端機模擬器(Terminal、iTerm2、Hyper、VS Code),只要背後跑的是同一個 Shell,你能用的指令和功能就是一模一樣的。

反過來說,如果你在同一個終端機模擬器裡面切換成不同的 Shell,你會發現能用的指令和行為就不一樣了。

不同的 Shell 有不同的能力

Shell 有很多種,每一種理解的指令不太一樣,提供的功能也不同。

以下用兩個常見的 Shell 來示範它們的差異:Zsh 和 Bash。

提示符(Prompt)的差異

當你打開終端機,看到的那一行等你輸入指令的文字,就叫做「提示符(Prompt)」。

不同的 Shell 會顯示不同的提示符。

舉例來說,即使你用同一個終端機模擬器,切換到 Zsh 和 Bash 時,提示符的樣子會完全不同。

這是因為提示符是由 Shell 控制的,不是由終端機模擬器控制的。

指令理解能力的差異

不同的 Shell 能理解的指令也不一樣。

舉個例子,在 Zsh 裡面:

  • 輸入 ~ 然後按 Enter,Zsh 會自動幫你切換到家目錄(Home Directory)
  • 輸入 - 然後按 Enter,Zsh 會帶你回到上一個待過的目錄

但在 Bash 裡面:

  • 輸入 ~ 然後按 Enter,Bash 雖然知道 ~ 代表家目錄,但不會自動幫你切換過去
  • 輸入 - 然後按 Enter,Bash 會告訴你它不認得這個指令

在 Bash 裡面,你需要明確地輸入 cd ~ 才能切到家目錄,輸入 cd - 才能回到上一個目錄。

這就是不同 Shell 之間的差異——它們各自支援不同的語法和快捷方式。

小結

最後來整理一下這篇文章的重點:

歷史上的意義:

  • Console:早期的硬體裝置,用來遠端連線大型主機
  • Terminal:跑在 Console 上的軟體,負責跟大型主機溝通

現代的意義:

  • Console 和 Terminal 這兩個詞現在指的是同一個東西:終端機模擬器(Terminal Emulator)
  • 終端機模擬器只是圖形介面,負責顯示畫面
  • 真正在背後執行指令的是 Shell

Shell 的重點:

  • 不同的 Shell(像是 Zsh、Bash)有不同的功能和指令支援
  • 不管用哪個終端機模擬器,只要 Shell 一樣,能用的指令就一樣

下次有人跟你說「打開 Terminal」或「打開 Console」,你就知道他們其實在講同一件事了。

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

基礎概念

目錄

  • 從大型主機時代說起:Console 和 Terminal 的由來
  • Console 是什麼?
  • Terminal 是什麼?
  • 現代已經沒有真正的 Console 和 Terminal 了
  • 終端機模擬器是什麼?
  • 終端機模擬器只是外觀,真正在工作的是 Shell
  • 不同的 Shell 有不同的能力
  • 提示符(Prompt)的差異
  • 指令理解能力的差異
  • 小結