當 Unix 哲學遇上 AI:Command Line 的文藝復興

我小時候看過一本書叫 Unix Power Tools,裡面有句話我記了快二十年:
“Command line pipeline is the best UI interface in the world.”
當時我完全不懂這是什麼意思。Command line 那個黑底白字的東西,怎麼可能是「最好的 UI」?
但我把這句話記住了,就像你小時候背的詩,長大後才突然懂得其中的意境。
研究所的瘋狂三天
為了真正學會 Linux,我做了一件現在想起來都覺得瘋狂的事。
我把實驗室的 Windows PC 整個 format 掉,然後裝上 Debian Linux。注意,不是那種打包好、一鍵安裝的 Fedora 或 Ubuntu(那時候 Ubuntu 還沒出生) ,而是最原始的 Debian(好啦, 我還用過 Gentoo ),從 command line 開始,一步一步把 Gnome 桌面環境裝起來。
簡單講,就是從一個黑色螢幕開始,把「Windows 的圖形介面」自己組裝出來。中間當然是災難連連。
印象最深的是遇到問題需要查網路。但沒有 browser 怎麼查網路?那時候也沒有 iPhone,不能用手機查。我只好寫 code wget Google -> Perl filter html -> Vim 來看(當然鳥哥的書一直在旁邊保駕護航)
這一切瘋狂行為持續了三天。第三天深夜,終於把 Gnome 裝好的那一瞬間,我坐在螢幕前,突然理解了那句話的意義:
“Command line pipeline is the best UI in the world.”
因為你可以用純文字在 process , socket , service 傳遞狀態,不需要繁瑣的 RPC or API 。這不是「最漂亮」的 UI,但這是「最強大」的 UI。
Command Line 的二十年
從那三天之後,我開 command line 的時間永遠比 GUI 多。我的碩士論文是用 vim + LaTeX 完成的。我前十年所有的 coding 工作,主要編輯器都是 vim。我後來只買 Mac,因為它是 FreeBSD based,打開 Terminal 就是回家。
進機房 debug 問題的時候,當我接上 server 螢幕,在那些習慣用 GUI 工具的 MIS 眼前,我的手指開始在鍵盤上飛舞,top、tail -f、grep、awk,一個接一個。不是炫技,是真的比較快。而且更重要的是,這些工具在任何 Linux server 上都有,不需要額外安裝任何東西。
當然,我也知道時代在變。
年輕一代的工程師習慣 VS Code、習慣 Docker Desktop、習慣各種圖形化的 DevOps 工具。我知道 Command line guru 正在被淘汰,變成一種懷舊的哲學、一種即將消失的生活方式。
2025 年 4 月:Claude Code 橫空出世
然後,Claude Code 來了。
第一次看到它的時候,我注意到一件事:它是 command line 介面。
沒有花俏的 GUI,沒有拖拉式的設計,就是一個終端機視窗,你打字,它回應,然後它可以執行 shell 命令、讀寫檔案、操作你的整個系統。
我幾乎在 1 分鐘之內就熟悉了它的操作。因為它的互動邏輯,就是我過去二十年每天在用的東西 — 一切都可以用 pipeline 串接。
只是這次,pipeline 的中間多了一個「幾乎全知的大腦」。
當全知大腦遇上最強介面
我終於理解了為什麼 Claude Code 選擇 command line。
我們都知道,LLM 要真正發揮威力,需要 access 足夠的資訊。而 command line 做的事情,本質上就這幾件:
- 讀檔、改檔、串流程 — 用 pipeline 思考
- Process 狀態可以直接讀取 — 誰在跑、卡在哪、是 fork 還是 zombie
- Socket / Port 狀態可以直接看見 — 誰在 listen、誰在 connect、流量往哪裡走
對很多人來說,這是門檻。
對我來說,這像是 command line 重新回到世界中心。
因為它做的事情,本質上只有一件:把整台電腦,變成可被詢問、可被推理、可被串接的狀態空間,一個世界模型。
無以倫比的流暢
更關鍵的是:大語言模型,是用文字在思考。Command line,是用文字在傳遞狀態。
一個用文字理解世界的腦,接上了一個用文字暴露世界狀態的介面。
Claude Code 寫 code ,去相關 PRD 抓spec ,寫好 code 後 python api , python venv 啟動,ps 檢查 process 有沒有問題,netstat 去看 port 有沒有狀況,curl 去 testing api 發現運作不正常,發現很慢 , 掃 log 沒發現錯,top 看 cpu 佔用太高,判斷寫法有錯,kill -9 然後重啟。 好了之後包 docker 跟 K8S ,gcloud deploy to Google Cloud
這一切,Claude Code 都可以完全不需要人介入就可以做完
因為這一切的狀態
- PRD
- python venv env
- process 狀態
- 網路 port 是否開啟
- 本機 curl
- log
- cpu 狀態
- google cloud
都是 command line 上面可以抓到的狀態,用最簡單最有效率,最不需要 align spec 的東西 “純文字” 串起來
這不是復古。這是結構上最合理的選擇。
然後,它就真的——殺瘋了。
給年輕工程師的話
在 AI 時代,最強的介面,往往不是最漂亮的那一個,而是最容易被推理、被串接、被理解的那一個。
因為 AI 真正需要的,不是按鈕,而是一個能描述世界狀態的模型。
而 command line 做的事情,本質上只有一件:把整台電腦,變成一個可以被查詢、被組合、被推理的世界模型。
檔案是狀態。Process 是狀態。Socket / Port 也是狀態。
而這些狀態,全都用文字暴露出來,可以被直接讀取、過濾、串接。
四十年前,Unix 就把這個世界模型準備好了。
現在,AI 只是回來——接手這個它最懂、也最適合的介面而已。
後記
寫這篇文章的時候,我用的是 Claude Code。
它幫我查了 Unix Power Tools 的出版年份(1993),幫我確認了 Debian 和 Gnome 的版本歷史,幫我檢查了文章裡的 command 語法是否正確。
全程都在 Terminal 裡完成。
我的手指在鍵盤上,感覺像是回到了二十年前那個研究所的深夜,只是這次,我不是一個人在跟 command line 搏鬥。
我有了一個懂 Unix 哲學的夥伴。