101 學習紀錄 _ Cli-based

更新 發佈閱讀 8 分鐘

嘗試利用 AI 快速學習一個領域的基本知識,此學習紀錄來自於學習後的收穫整理。

一、起點:CLI 與 GUI 是兩種不同的「人機溝通哲學」

GUI 的本質貢獻,不是「把東西變漂亮」,而是把記憶(recall)轉成辨識(recognition)。螢幕上充滿視覺 cue,人可以用真實世界的直覺理解電腦,所以學習成本低、上手快。

CLI 剛好相反:沒有 cue,只能靠記憶。discoverability 極低,難以試錯學習。這是它的弱點。

但 GUI 有一個根本限制:操作是孤立的。每一個點擊都是一次性的人工動作,難以把「一連串操作」轉成「可重複執行的規則」。規模化、自動化在 GUI 下幾乎不可能。

CLI 要求使用者具備一種能力:把複雜問題拆成可組合的步驟,並用結構化方式描述。這聽起來是缺點(門檻高),但其實是它的核心優勢——因為「可描述」就代表「可自動化」,CLI 是機器可以直接操作的介面。

二、Shell 的運作鏈路:一條指令的生命週期

理解 CLI,必須先搞清楚幾個常被混淆的角色:

  • Terminal:負責輸入與顯示的視窗介面
  • Shell:理解指令並執行的解譯器(bash、zsh、PowerShell)
  • Kernel:OS 核心,分配資源、建立 process
  • Process:實際執行工作的程式

完整鏈路:

```
[鍵盤輸入]
  → Terminal 接收輸入
  → Shell 解析語法(指令、參數、pipe、redirect)
  → Shell 請 Kernel 建立 process
  → Kernel 分配資源(記憶體、stdin/stdout/stderr、pipe)
  → Process 執行工作
  → 正常輸出 → stdout → Terminal 顯示
  → 錯誤訊息 → stderr
  → 若有 pipe,stdout 流入下一個 process 的 stdin

```


三條資料流的設計意義

stdin / stdout / stderr 把資料流**分流**,讓每條流可以被獨立控制與重組。這是 pipe 能運作的基礎。

更關鍵的是「流」這個概念本身:stdout **一邊輸出、下游一邊處理**,不需要等全部完成才交付。這就是 streaming 思維——不要求「先完成再交付」,允許資料持續流動、持續處理。

> streaming 能處理無限流:log tailing、event processing、pipeline、agent tool chaining 都依賴這個設計。低延遲、可擴展、可組合。

對比「回傳式」:若全部處理完再輸出,中間資料需要存到 memory/temp,產生延遲,也限制了可擴展性。


三、Unix 哲學:可組合性是 CLI 的靈魂

Unix 哲學的核心是「**做好一件事**」——每個工具只負責一件事,然後透過 pipe 組合。

**有 pipe 的世界:**


```bash

cat access.log | grep 404 | sort | uniq | wc -l

```


**沒有 pipe 的世界:**


```bash

cat access.log > temp1.txt

grep 404 < temp1.txt > temp2.txt

sort < temp2.txt > temp3.txt

uniq < temp3.txt > temp4.txt

wc -l < temp4.txt

```

差異不只是「簡潔」,而是有無中間狀態。有 pipe 的版本,資料在流動中被處理,不需要暫存檔,也不需要等待每一步完成。

四、CLI 作為程式介面:exit code 與 machine-readable output

CLI 不只是給人打的,它本質上也是程式呼叫程式的介面。

CLI vs REST API 的本質對應

| 概念 | CLI | REST API |

| 呼叫方式 | `command` | HTTP request |

| 參數 | flags / arguments | query / body |

| 回傳狀態 | exit code | HTTP status code |

| 回傳資料 | stdout / JSON | JSON response |

| 執行位置 | 本機 | 遠端伺服器 |

| 通訊方式 | process call | network (HTTP) |

| 並發能力 | 低(開 process) | 高(server) |

| 狀態管理 | 通常無狀態 | 可有 session / state |

**Exit code** 用數字而非文字,是因為程式間溝通不需要「語意」,只需要「判斷」。`0 = 成功``非 0 = 某種失敗`,下游程式直接用數字做 branch,不需要解析文字。

**--json 輸出**的出現,是因為下游消費者(腳本、Agent)需要結構化資料,而不是給人看的文字。


五、AI Agent 為什麼天然選擇 CLI

### LLM + CLI 的天然契合

LLM 輸入輸出都是文字,CLI 的輸入輸出也都是文字。更關鍵的是,CLI 提供了:

  • 確定性:相同指令總是相同行為
  • 可組合性:小工具自由串接,Agent 不需要為每個任務特製工具
  • 結構化回饋:exit code 判斷成敗,stdout 解析結果,stderr 做 debug
  • 低頻寬:純文字,不需要看懂螢幕、移動滑鼠、等待渲染

Reasoning Layer(LLM) : 語意理解、模糊判斷、策略規劃

Deterministic Layer(CLI/Script) :  穩定執行、可重複、可驗證

總結

```

人機溝通的本質

  ├── GUI:辨識 > 記憶,操作孤立,難以自動化

  └── CLI:可描述 = 可自動化,機器可直接操作的介面

            │

            ▼

      Shell 執行鏈路

      Terminal → Shell → Kernel → Process

            │

            ▼

      三條資料流 stdin / stdout / stderr

      → streaming 思維(持續流動、持續處理)

            │

            ▼

      Unix 哲學:可組合性

      Pipe 串接工具,不需中間狀態

            │

            ▼

      CLI 作為程式介面

      exit code + JSON output = machine-readable API

            │

            ▼

      AI Agent 時代的 CLI

      Reasoning Layer(LLM)+ Deterministic Layer(CLI)

      Use code for rules, use LLM for judgment.

```



留言
avatar-img
Boo.ideas
31會員
16內容數
還在寫
你可能也想看
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
【霍諾德無防護徒手獨攀台北101】 美國自由攀岩好手霍諾德(Alex Honnold),2026年1月25日,順利完成徒手攀登台北101大樓。 霍諾德在無繩索、無安全裝備的情況下,花了約91分鐘完成壯舉。
Thumbnail
【霍諾德無防護徒手獨攀台北101】 美國自由攀岩好手霍諾德(Alex Honnold),2026年1月25日,順利完成徒手攀登台北101大樓。 霍諾德在無繩索、無安全裝備的情況下,花了約91分鐘完成壯舉。
Thumbnail
上站全世界流量攀升至第一名,兩天,用手攀爬101, 大流量的原因,而且,你遲早會去看他的理由, 在於, 不是他爬得多快,雖然是,也不是他空手, 而是
Thumbnail
上站全世界流量攀升至第一名,兩天,用手攀爬101, 大流量的原因,而且,你遲早會去看他的理由, 在於, 不是他爬得多快,雖然是,也不是他空手, 而是
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
說好的萬年曆,只有200年          接下來想挑戰萬年曆,於是上網找找有關閏年的資料,不找還好找出很多不知道的事。一開始,想說阿不就 4 年閏一次,好像...什麼 100 的倍數又不是,然後 400 的倍數又是閏年,接著發現 1582 年前根本不是這麼一回事, 1582 年又消失了很多天,好
Thumbnail
說好的萬年曆,只有200年          接下來想挑戰萬年曆,於是上網找找有關閏年的資料,不找還好找出很多不知道的事。一開始,想說阿不就 4 年閏一次,好像...什麼 100 的倍數又不是,然後 400 的倍數又是閏年,接著發現 1582 年前根本不是這麼一回事, 1582 年又消失了很多天,好
Thumbnail
你有什麼一直在做的小癖好嗎? 我自己就很喜歡觀察各種商標的配色! 而想要了解配色更多,我甚至開始接觸色彩學! 這個色彩學的學習專案,就是所謂的「小癖好計劃」。 小癖好計劃可以滿足個人成長、知識啟發,甚至還能通過知識套利來獲得潛在利潤🤯! 以下是以個人興趣領航,執行小癖好計劃進行跨領域學習的3個大大
Thumbnail
你有什麼一直在做的小癖好嗎? 我自己就很喜歡觀察各種商標的配色! 而想要了解配色更多,我甚至開始接觸色彩學! 這個色彩學的學習專案,就是所謂的「小癖好計劃」。 小癖好計劃可以滿足個人成長、知識啟發,甚至還能通過知識套利來獲得潛在利潤🤯! 以下是以個人興趣領航,執行小癖好計劃進行跨領域學習的3個大大
Thumbnail
商務人士必備品酒禮儀: 葡萄酒除了是歐美人士的飲食文化,也是商場交流的必備元素。如何在商業交流場合,不失禮儀又可以過癮飲酒?
Thumbnail
商務人士必備品酒禮儀: 葡萄酒除了是歐美人士的飲食文化,也是商場交流的必備元素。如何在商業交流場合,不失禮儀又可以過癮飲酒?
Thumbnail
本篇內容以「祇園祭」為主題,介紹了京都七月著名的夏日祭典。透過單字、例句、對話及文法解析,引導讀者學習與祭典相關的日語詞彙和表達方式,並學會如何使用「〜は、〜から〜まで行われます」句型來描述活動期間。文章適合計畫到京都旅遊,想學習日語並深入瞭解祇園祭的讀者。
Thumbnail
本篇內容以「祇園祭」為主題,介紹了京都七月著名的夏日祭典。透過單字、例句、對話及文法解析,引導讀者學習與祭典相關的日語詞彙和表達方式,並學會如何使用「〜は、〜から〜まで行われます」句型來描述活動期間。文章適合計畫到京都旅遊,想學習日語並深入瞭解祇園祭的讀者。
Thumbnail
受到天氣影響,「霍諾德攀爬臺北 101」活動因此延期,活動發言人賈永婕在臨危不亂中,展現了領導者的氣度。文章引用《易經》家人卦的九五爻,分析賈永婕如何做到「承擔位置」、「言有物,行有恆」、「由內而外」,並提供如何在生活中應用「先站住位置」、「不傳遞焦慮」、「勇於承擔」等三個關鍵提醒。
Thumbnail
受到天氣影響,「霍諾德攀爬臺北 101」活動因此延期,活動發言人賈永婕在臨危不亂中,展現了領導者的氣度。文章引用《易經》家人卦的九五爻,分析賈永婕如何做到「承擔位置」、「言有物,行有恆」、「由內而外」,並提供如何在生活中應用「先站住位置」、「不傳遞焦慮」、「勇於承擔」等三個關鍵提醒。
Thumbnail
「年齡;年紀 (十一) 101歲 到 110歲 的日文」的日文要如何表達?以及要怎麼讀呢?
Thumbnail
「年齡;年紀 (十一) 101歲 到 110歲 的日文」的日文要如何表達?以及要怎麼讀呢?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News