Unix Philosophy Claude Code

我小時候看過一本書叫 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 眼前,我的手指開始在鍵盤上飛舞,toptail -fgrepawk,一個接一個。不是炫技,是真的比較快。而且更重要的是,這些工具在任何 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 哲學的夥伴。