終端機
The Terminal
打開一個終端機。一個深色的長方形,一個閃爍的游標,一個等待中的提示符號。 大多數人把這整個東西叫做「終端機」,然後就沒有再想下去。
但那個長方形裡其實疊著三個獨立的程式,由不同年代的人為了不同的問題寫成。 一個負責畫,一個負責解讀,一個負責記住。把它們混為一談平常沒什麼關係, 直到某天你正在跑的東西憑空消失,或是你留下來工作的 agent 突然沒了聲音, 而你完全不知道是哪一層出了問題。
這一頁會把三層拆開來看。然後再看看,當第四位參與者也開始在同一個提示符號後面打字時,什麼改變了。
值得一看的課程
一月的 MIT 獨立活動期,幾位講師會開一門短期課程 The Missing Semester of Your CS Education, 出發點是一個誠實的觀察:大學教演算法、教編譯器,卻很少教人們每天用來完成工作的工具。 2026 年版的第二講「Command-line Environment」,是我們所知關於這個主題最清楚的一小時。 它談串流、訊號、遠端機器、多工器, 還有一節是這十年才新增的:在 shell 裡有一個語言模型,意味著什麼。
"A terminal emulator is a GUI program that provides the text-based interface where your shell runs."
課程內容採 CC BY-NC-SA 4.0 授權。本頁嵌入講課影片並引用一句話;下面的心智模型是我們自己寫的。
你一直混為一談的三層
由外而內:你看著的視窗、可能正在(也可能沒有)替你保住工作的工作階段,以及真正執行指令的解譯器。
- 終端機模擬器 Terminal emulator 畫
- 多工器 Multiplexer 保住 · 可有可無
- Shell 解讀
- 你的程式,現在還有你的 agent 執行
Terminal.app、iTerm2、Ghostty、cmux、Windows Terminal。它擁有那個視窗:字型、顏色、 捲動歷史、剪貼簿。它把你的按鍵變成位元組,再把回來的位元組變成字形。 之所以叫模擬器,是因為它至今仍假裝自己是一台 1978 年的硬體:DEC VT100, 它的逃脫序列每一個現代程式都還在說。換一個模擬器,你的指令什麼都不會變,只有長相會變。
bash、zsh、fish、PowerShell。它是模擬器那些位元組另一端的程式。它讀你打的那一行,
展開 *,找到你點名的程式,啟動它,再把它的輸出接到下一個程式的輸入。
管線、變數、別名、腳本:全都是 shell 的事。
你看到的提示符號屬於 shell,不屬於終端機。
screen、tmux、zellij。可有可無,也是大多數人從來沒遇過的那一層。它夾在視窗和 shell 之間, 自己把工作階段養著,不依賴任何視窗。把一個終端機切成好幾個窗格。 分離、闔上筆電、明天回來、重新接上:一切都還在跑。 Multiplex 是電信業的老詞,指在一條線路上同時傳送許多訊號。
這裡有一個測試,能讓第三層變得真實。先跑一個很久的東西,然後闔上筆電,或是讓 SSH 連線斷掉。 沒有多工器時,視窗沒了,shell 跟著沒了,shell 啟動的每一個東西都會收到掛斷訊號然後死掉。 有多工器時,視窗從來就只是一個視角。工作階段一直住在別的地方,你掀開筆電,它還在。
終端機簡史
每一層的存在,都是因為前一層撞上了自己的極限。
- Teletype Model 33(1963)。第一台「終端機」是一台附鍵盤的印表機。
你打字,電腦打回來,全在紙上。Unix 至今仍用
tty稱呼終端機,那是 teletype 的縮寫。 Wikipedia ↗ - DEC VT100(1978 年 8 月)。紙換成了螢幕,還多了一套移動游標、標色的標準逃脫序列。 你今天用的每一個模擬器都還在說 VT100。 vt100.net ↗
- xterm(1984)。寫於 X Window System 誕生的那個夏天,一開始是 VS100 上的獨立模擬器, 後來改成跑在 X 上。終端機成了眾多視窗中的一個視窗。 xterm FAQ ↗
- GNU screen(1987)。柏林工業大學的 Oliver Laumann 與 Carsten Bormann。 工作階段第一次可以和視窗分離,稍後再接回來。 Wikipedia ↗
- tmux(2007 年 11 月)。Nicholas Marriott 把同一個想法重寫一遍,2009 年進入 OpenBSD 的基礎系統。 工作階段、視窗、窗格:大多數人說「多工器」時,指的就是這套詞彙。 Wikipedia ↗
- Ghostty 1.0(2024 年 12 月)。Mitchell Hashimoto 以 GPU 繪製的模擬器, 核心是 libghostty,一個設計來讓其他終端機嵌入的引擎。 mitchellh.com ↗
- 為 agent 而生的多工器(2025 到 2026)。cmux、Herdr、Superlogical。 這一層開始圍繞著一個從不睡覺的使用者重新打造自己。
紙變成螢幕,螢幕變成視窗,視窗學會放手讓工作階段自己活著。這一切都沒有改變「一道指令」是什麼。 改變的是誰可以在跑指令,以及可以跑多久。
第四位參與者
2026 年的講義描述了語言模型進入 shell 的三種方式:替你生成一道指令、像其他過濾器一樣坐在管線裡, 還有第三種,性質上是全新的。用課程自己的話說,像 Claude Code 這樣的工具 「act as a meta-shell that accepts English commands and translates them into shell operations, file edits, and more complex multi-step tasks」。
一個元 shell。agent 坐在 shell 這一層,行為卻像一個使用者: 它跑指令、讀輸出、決定下一步跑什麼。一旦如此,三件事會跟著改變。
- 工作階段必須比你的注意力活得久。一個花兩小時重構程式的 agent,不能指望你的視窗一直開著。闔蓋測試不再是小知識,而是整件事的核心。
- 它們不只一個。課程建議把平行的 agent 各自放在不同的 git worktree,才不會互相絆倒。那是同時許多個 shell,各有各的狀態,而不是一個提示符號。
- 它們需要能叫你回來。坐在提示符號前的人知道自己在等你。agent 得自己發出訊號:一則通知、一個狀態、分頁上的一圈光。
- 它們會被騙。agent 讀進世界遞給它的任何東西,而 shell 相信 agent 打出的任何指令。出事的時候,重要的問題不是它本來想做什麼,而是它碰得到什麼。
將近二十歲的 tmux,早就能做第一件事。把 agent 放在一個工作階段裡啟動、分離,你斷線之後它繼續工作。 這就是為什麼這個仍在廣泛使用的最老多工器,突然出現在每一份 agent 教學裡。
更新的工具則是把 agent 當作第一個前提,重新打造這一層。它們也在第四個改變上分道揚鑣: 工作階段裡的東西,該信任到什麼程度。其中一家 OpenAB 在 2026 年 8 月的一篇筆記裡把這條光譜攤開來; 我們借用它的座標軸,不借用它的結論。以下是這個快速變動的層的一張快照,不是推薦。 OpenAB,2026 年 8 月 ↗
以 libghostty 打造的原生 macOS 終端機,有垂直分頁、agent 需要你注意時亮起的通知光圈、內嵌瀏覽器, 以及可用腳本操控的 socket API。設計目的是同時跑好幾個 agent,並把它們全部看在眼裡。 名字雖然像,它和 tmux 毫無關係。以 GPL-3.0 開源。
自稱「the runtime your coding agents live on」。它接管 agent 的終端機,所以你闔上筆電後它們仍然存在, 並跨工作區顯示每一個 agent 是工作中、被卡住、還是閒置。主流的 agent CLI 都能直接跑,不用改變用法。 Apache 2.0 授權,支援 macOS、Linux 與 Windows。
Ghostty 作者 Mitchell Hashimoto 的新公司,與 Jack Pearkes、Alasdair Monk、Hector Simpson 合作: 「the multiplexer for all work」。一個長期存在的多工器,能從網頁或原生 app 進入、與他人共享、從任何裝置重新連上, 要成為 agent、背景工作與維運共同的底座。撰寫本頁時尚未正式推出。
一個住在刻意無權限容器裡的遠端 shell:一般使用者、沒有 sudo、唯讀的根檔案系統、沒有 service-account token。 整條路徑走 WireGuard tailnet,每個工作階段的 token 都有時限、不帶簽章金鑰。 它的賭注是 agent 一定會失控,所以環境從第一天起就假設裡面的東西不可信。runtime 以 MIT 授權開源。
與駕馭工程的交會
這一區接下來的兩頁談的是如何引導模型:約束它的 馬具, 與餵養它的 上下文。 兩者都發生在這裡。agent 的工具是 shell 指令,它的上下文是磁碟上的檔案, 它的馬具跑在一個你可以看著、離開、再回來的工作階段裡。先認識這一層,那門技藝才有立足之地。
這裡也是本站的大門。每一頁上方的 ⌘K 終端機,某種意義上也是一個模擬器,只是提示符號後面站著一個模型。 管線不同,形狀相同:一個人、一台機器、一個模型相遇的地方。
重點摘要
- 「終端機」是三個程式。模擬器負責畫,shell 負責解讀,多工器負責保住。
- 闔蓋測試能分辨它們。關掉視窗之後還活著的東西,就是住在多工器裡的東西。
- 每一個模擬器都還是一台 VT100。1978 年的逃脫序列,是你的工具到哪裡都能用的原因。
- agent 讓多工器再度變新。一個從不睡覺的使用者,需要一個永不死去的工作階段。
- 馬具就住在這裡。接下來兩頁的一切,都發生在這一層之內。