【tmux x Claude Code 教學】#01 為什麼要用 tmux 搭配 Claude Code?

測驗:為什麼要用 tmux 搭配 Claude Code?

共 5 題,點選答案後會立即顯示結果

1. tmux 的全名「Terminal Multiplexer」代表什麼意思?

  • A. 一種終端模擬器,用來美化終端的外觀和字型
  • B. 終端多工器,讓你在一個終端視窗裡開出多個虛擬終端
  • C. 終端加速器,用來讓指令執行速度變快
  • D. 終端錄影器,用來記錄終端操作並重播

2. tmux 的三層架構由外到內的正確順序是什麼?

  • A. Window > Session > Pane
  • B. Pane > Window > Session
  • C. Session > Window > Pane
  • D. Session > Pane > Window

3. 為什麼 SSH 斷線時,沒有使用 tmux 的 Claude Code 任務會消失?

  • A. 因為 Claude Code 偵測到網路中斷後會自動儲存並關閉
  • B. 因為 SSH 連線一斷,終端裡的所有程序都會被終止
  • C. 因為遠端伺服器會自動清除閒置的使用者程序
  • D. 因為 Claude Code 需要持續的網路連線才能運作

4. 在 tmux 中,detachattach 分別代表什麼操作?

  • A. detach 是關閉 tmux session,attach 是建立新的 session
  • B. detach 是暫停程序執行,attach 是恢復程序執行
  • C. detach 是把面板分離成獨立視窗,attach 是合併面板
  • D. detach 是離開但讓 tmux 在背景繼續跑,attach 是重新接回去

5. 以下哪種使用情境,文章認為「可能暫時不需要 tmux」?

  • A. 經常用 SSH 連到遠端伺服器,並執行超過 10 分鐘的重構任務
  • B. 想同時開兩個 Claude Code 分別做不同任務
  • C. 只在本機開發,且 Claude Code 任務都只需幾秒鐘就完成
  • D. 曾經因為不小心關掉終端而丟失 Claude 的輸出

一句話說明

tmux 讓你在一個終端裡同時跑多個 Claude Code,互不干擾、斷線也不怕。


這篇在講什麼

如果你已經在用 Claude Code 寫程式,你一定遇過這些情況:Claude 正在幫你重構一大堆檔案,你只能乾等;SSH 到遠端伺服器跑 Claude Code,結果網路一斷,任務就沒了。

這篇文章會告訴你:tmux 是什麼、為什麼它能解決這些痛點、你的工作流適不適合用它


Claude Code 是什麼?30 秒回顧

Claude Code 是 Anthropic 推出的終端 AI 開發工具。它不是網頁聊天介面,而是直接跑在你的終端(Terminal)裡的 AI 代理。

$ claude
# 啟動後,你直接在終端裡用自然語言跟 Claude 對話
# 它可以讀你的專案檔案、幫你寫程式、跑指令
Code language: PHP (php)

關鍵特性:它「住」在終端裡。這代表它啟動時會佔據一整個終端視窗,你在等它回應的時候,這個終端就被佔走了。

記住這個前提,因為接下來的所有痛點都從這裡開始。


單一終端的三大痛點

痛點 1:等待時被鎖死

你的終端                    你想做的事
┌─────────────────────┐
│ Claude Code 正在     │    「我想開另一個檔案看一下...」
│ 分析 200 個檔案...   │    「我想跑一下 git log...」
│ 還要等 3 分鐘...     │    「我想測試剛改好的功能...」
│ ████░░░░░░░░ 30%    │
│                     │    --> 全部做不了,只能等
└─────────────────────┘

Claude Code 在處理大型任務時,你的終端就是被佔住的狀態。想做任何其他事?你只能再開一個終端視窗。開到後來,你的工作列塞滿了終端視窗,切換起來一團亂。

痛點 2:長時間任務佔據終端

假設你請 Claude Code 幫你:

  • 重構整個專案的 API 層(可能要跑 10 分鐘以上)
  • 幫你逐一修復 50 個 lint 錯誤
  • 分析整個 codebase 後寫文件

這些任務一旦開始,你就得專門留一個終端給它。在任務跑完之前,這個終端什麼都不能做。

痛點 3:SSH 斷線,一切歸零

這是最痛的。

你的筆電 ──SSH──> 遠端伺服器
                   └── Claude Code 正在跑大任務...

    WiFi 斷了 / 筆電蓋起來了 / VPN 掉了

你的筆電 ──SSH──> 遠端伺服器
                   └── Claude Code: (已經不在了)

SSH 連線一斷,終端裡的所有程序都會被終止。你精心下的指令、Claude 跑到一半的任務,全部消失。得從頭來過。


tmux 是什麼?

tmux 是一個「終端多工器」(Terminal Multiplexer)。

翻譯成白話:它讓你在一個終端視窗裡面,開出好幾個「虛擬終端」,而且這些虛擬終端可以在背景持續運作,即使你關掉了真正的終端視窗。

tmux 的三個核心概念

tmux 的世界長這樣:

Session(會話)
├── Window(視窗)          像瀏覽器的「分頁」
│   ├── Pane(面板)        像把一個分頁「分割」成好幾塊
│   └── Pane(面板)
├── Window(視窗)
│   └── Pane(面板)
└── Window(視窗)
    ├── Pane(面板)
    ├── Pane(面板)
    └── Pane(面板)
概念 白話翻譯 類比
Session 一整個工作空間 一個專案的所有東西
Window 工作空間裡的分頁 瀏覽器的一個 tab
Pane 分頁裡的分割區塊 把 tab 切成左右兩半

最小範例:tmux 長什麼樣

啟動前:你的終端
┌─────────────────────────────┐
│ $ _                         │
│                             │
│                             │
└─────────────────────────────┘

啟動 tmux 後:看起來差不多,但底部多了一條狀態列
┌─────────────────────────────┐
│ $ _                         │
│                             │
│                             │
│[my-session] 0:bash*         │  <-- tmux 的狀態列
└─────────────────────────────┘

分割成兩個面板後:
┌──────────────┬──────────────┐
│ $ claude     │ $ git log    │
│              │              │
│ (Claude Code │ (你可以同時  │
│  在這裡跑)   │  做其他事)   │
│              │              │
│[my-session] 0:bash*         │
└──────────────┴──────────────┘

這就是 tmux 的核心價值:一個終端視窗,多個工作區域


tmux 怎麼解決 Claude Code 的痛點?

解法 1:多面板同時操作

┌──────────────┬──────────────┐
│              │              │
│ Claude Code  │  你的終端    │
│ 正在分析...  │  $ git log   │
│ ████░░ 30%  │  $ npm test  │
│              │  $ vim app.js│
│              │              │
└──────────────┴──────────────┘

左邊讓 Claude Code 跑它的,右邊你繼續工作。不用等,不用搶

解法 2:背景執行 + 隨時回來看

# 步驟 1:在 tmux 裡啟動 Claude Code
$ claude
> 幫我重構整個 API 層

# 步驟 2:按 Ctrl+b 然後按 d,離開(detach)tmux
# Claude Code 繼續在背景跑,你去做別的事

# 步驟 3:10 分鐘後回來看結果
$ tmux attach
# Claude Code 的輸出完整保留,一行都沒少
Code language: PHP (php)

翻譯detach 就像「把工作最小化」,attach 就像「把它叫回來」。差別是:即使你關掉整個終端視窗,tmux 裡的任務也不會停。

解法 3:SSH 斷線也不怕

你的筆電 ──SSH──> 遠端伺服器
                   └── tmux session
                        └── Claude Code 正在跑大任務...

    WiFi 斷了

你的筆電 ──SSH──> 遠端伺服器(重新連線)
                   └── tmux session(還在!)
                        └── Claude Code: 完成了!結果在這裡。

因為 tmux session 跑在伺服器上,不依賴你的 SSH 連線。連線斷了,tmux 裡的東西照樣運作。重新連線後,tmux attach 就能接回去,所有內容原封不動


使用場景預告

這個系列接下來會教你實作這些場景:

場景 A:多個 Claude Code 實例同時開發

┌──────────────┬──────────────┐
│ Claude #1Claude #2    │
│              │              │
│「重構 API」  │「寫測試」     │
│              │              │
└──────────────┴──────────────┘
Code language: CSS (css)

兩個 Claude Code 同時跑不同任務,開發速度直接翻倍。

場景 B:一邊讓 Claude 跑、一邊寫程式

┌──────────────┬──────────────┐
│ Claude Code  │ vim / code   │
│              │              │
│「分析這段    │(你在另一邊  │
│  程式碼...」 │  繼續開發)  │
│              │              │
└──────────────┴──────────────┘

不再被 Claude 的處理時間卡住,你的開發流程不會中斷。

場景 C:遠端開發不怕斷線

$ ssh dev-server
$ tmux attach -t work
# 接回昨天的工作進度,Claude Code 的對話紀錄完整保留
Code language: PHP (php)

出門帶筆電、回家換桌機,工作進度無縫銜接。


判斷你是否需要 tmux

不是每個人都需要 tmux。看看以下檢查表:

你需要 tmux 的信號

  • [ ] 你經常用 Claude Code 跑超過 1 分鐘的任務
  • [ ] 你會同時想做多件事(等 Claude 回應時想跑其他指令)
  • [ ] 你用 SSH 連到遠端伺服器開發
  • [ ] 你想同時開多個 Claude Code 做不同任務
  • [ ] 你曾經因為不小心關了終端而丟失 Claude 的輸出

勾了 2 個以上?這個系列很適合你。

你可能暫時不需要 tmux

  • 你只在本機開發,Claude Code 的任務都很短(幾秒鐘就完成)
  • 你習慣用 VS Code 的內建終端,已經有分割面板功能
  • 你完全不用 SSH 遠端開發

即使如此,學會 tmux 的基本操作也不虧。它是一個投資報酬率很高的工具,一旦學會就回不去了。


安裝 tmux

在正式開始之前,先把 tmux 裝好。

macOS

brew install tmux

Ubuntu / Debian

sudo apt update && sudo apt install tmux -y

Fedora / RHEL

sudo dnf install tmux -y

Arch Linux

sudo pacman -S tmux

Windows(WSL)

如果你在 Windows 上用 WSL(Windows Subsystem for Linux),直接在 WSL 終端裡用上面的 Ubuntu 指令即可。

確認安裝成功

tmux -V
# 應該會顯示類似 tmux 3.4 的版本號
Code language: CSS (css)

看到版本號就代表安裝成功。如果你看到 command not found,請確認你的套件管理器有正確執行。


Vibe Coder 檢查點

讀完這篇後,確認你理解了這些:

  • [ ] Claude Code 跑在終端裡,會佔據一整個終端視窗
  • [ ] tmux 讓你在一個終端裡開出多個虛擬工作區
  • [ ] tmux 的三層結構:Session > Window > Pane
  • [ ] detach 讓 tmux 在背景跑,attach 把它叫回來
  • [ ] SSH 斷線時,tmux 裡的任務不會中斷
  • [ ] 你已經在自己的電腦上安裝了 tmux

下一篇預告

【tmux x Claude Code 教學】#02 會教你 tmux 的基本操作:怎麼建立 session、切割面板、在面板之間切換。全部都是「必看懂」的核心操作,學完就能馬上搭配 Claude Code 使用。


必看懂 vs 知道就好

必看懂(本篇核心):
- tmux 是「終端多工器」,讓你在一個視窗裡開多個終端
- Session / Window / Pane 三層概念
- Detach(離開但不關閉)和 Attach(重新接回去)
- tmux 的安裝方式

知道就好(後面的篇章會細講):
- tmux 的快捷鍵操作
- tmux 的設定檔(.tmux.conf)
- tmux 外掛生態系

進階測驗:為什麼要用 tmux 搭配 Claude Code?

測驗目標:驗證你是否能在實際情境中應用所學。
共 5 題,包含情境題與錯誤診斷題。

1. 你正在用 SSH 連到公司的開發伺服器,請 Claude Code 分析整個 codebase 並產生文件(預估需要 15 分鐘)。你等一下需要帶筆電去會議室開會,WiFi 會中斷。你應該怎麼做? 情境題

  • A. 先取消 Claude Code 的任務,等開完會回來再重新執行
  • B. 把筆電帶去會議室,確保 WiFi 不要中斷就好
  • C. 在 tmux session 裡執行 Claude Code,然後 detach 離開,開完會再 SSH 回來用 tmux attach 接回去
  • D. 多開一個 SSH 連線備份,這樣一個斷了還有另一個

2. 你想同時請 Claude Code 做兩件事:一個負責重構 API 層,另一個負責寫測試。你只有一個終端視窗。最佳做法是什麼? 情境題

  • A. 先讓 Claude Code 做完重構 API,再開始寫測試,依序執行
  • B. 在 tmux 裡開兩個 Pane,左右各跑一個 Claude Code 實例,同時進行
  • C. 開兩個獨立的終端視窗,各跑一個 Claude Code
  • D. 在同一個終端用 & 把 Claude Code 放到背景執行,再開第二個

3. 你的同事小明說:「我在 VS Code 的內建終端已經有分割面板功能了,我平常只在本機開發,Claude Code 的任務通常幾秒就完成。我應該花時間學 tmux 嗎?」根據文章的建議,你會怎麼回答? 情境題

  • A. 一定要學,tmux 是每個開發者必備的工具
  • B. 完全不需要學,VS Code 的終端功能已經夠用了
  • C. 只有用 SSH 遠端開發的人才需要 tmux,小明不需要
  • D. 他目前可能暫時不需要,但學會基本操作也不虧,因為 tmux 投資報酬率很高

4. 小華在遠端伺服器上直接執行 Claude Code(沒有使用 tmux),請它重構整個專案的 API 層。跑到一半時,他的 VPN 斷線了。重新連上 SSH 後,他發現 Claude Code 不見了,重構只做了一半。問題出在哪裡? 錯誤診斷

$ ssh dev-server $ claude > 幫我重構整個 API 層 # Claude Code 開始執行…跑到約 50% # — VPN 突然斷線 — $ ssh dev-server # 重新連線 $ # Claude Code 不見了,重構只完成一半
  • A. Claude Code 偵測到網路不穩定,主動中止了任務以避免產生錯誤的程式碼
  • B. 沒有使用 tmux,SSH 斷線後終端程序被終止,Claude Code 也跟著結束了
  • C. 遠端伺服器的記憶體不足,導致 Claude Code 被系統強制關閉
  • D. SSH 重新連線後需要執行 claude --resume 才能恢復上次的任務

5. 小李安裝完 tmux 後,想確認是否安裝成功。他輸入了指令但看到以下訊息。最可能的原因和解法是什麼? 錯誤診斷

$ tmux -V bash: tmux: command not found
  • A. tmux 版本太舊,不支援 -V 參數,應該改用 tmux --version
  • B. 需要先重新啟動電腦,tmux 才能被終端辨識
  • C. 套件管理器沒有正確執行安裝,tmux 實際上並未安裝成功,需要重新執行安裝指令
  • D. tmux 安裝成功但需要用 sudo tmux -V 才能執行

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *