
別讓終端機把你逼瘋:用 tmux 守住你的遠端連線
遠端開發最常用的工具是 SSH 直連終端機。它簡單,但太脆弱——網路抖動幾秒、SSH 超時幾小時、甚至路由器斷線,都會讓你手邊的任務灰飛煙滅。
📋 实验室验证报告
別讓終端機把你逼瘋:用 tmux 守住你的遠端連線
遠端開發最常用的工具是 SSH 直連終端機。它簡單,但太脆弱——網路抖動幾秒、SSH 超時幾小時、甚至路由器斷線,都會讓你手邊的任務灰飛煙滅。
tmux 的出現,是為了解決「終端機一斷,一切重來」的問題。
什麼時候該用 tmux
- **網路不穩定**:你希望終端機即使斷網,在幾分鐘內恢復連線後工作仍在執行。
- **多工並行**:你需要一邊跑編譯,一邊看測試輸出,同時監控日誌。
- **長時間執行**:背景工作不可控時(比如部署腳本、爬蟲),tmux 能提供持久化的工作階段。
- **共用終端機**:與同事合作時,可以把終端機畫面分享給別人,無需複製貼上。
什麼時候不該用 tmux
- **輕量級指令**:一句 `ls` 或 `curl`,不值得開 session。
- **需要強互動**:某些需要特殊裝置節點的程式(如 `p4v` 用戶端)在 tmux 內可能行為異常。
- **資源受限**:嵌入式裝置或容器內可用記憶體很少,tmux 會產生額外開銷。
快速上手 checklist
1. 開啟終端機,輸入 `tmux` 或 `tmux new -s work` 建立工作階段。
2. 頂部狀態列顯示工作階段名稱和 pane 資訊。
3. 用 `Ctrl+b` 加 c 新增 window,加 % 縱向分割 pane,加 " 橫向分割。
4. 在 pane 之間切換:`Ctrl+b` 加方向鍵。
5. 離開時不要直接關閉視窗,而是 `Ctrl+b` 加 d detach,session 留在背景執行。
6. 重新連線:`tmux attach -t work`。
進階技巧
- **自動重啟斷線**:在 `~/.tmux.conf` 中加入 `set -g reattach-on-detach on`,斷開時自動重連。
- **持久化日誌**:`set -g status on` 開啟狀態列,可將重要資訊放在 bottom pane 持續監控。
- **session 綁定連接埠**:用 `tmux new -s name -P` 可以強制綁定特定連接埠(需配合其他工具)。
- **複製模式**:`Ctrl+b` 加 [ 進入 vim 風格的複製模式,方向鍵移動,Enter 複製,Ctrl+b 加 ] 貼上。
常見坑
| 現象 | 原因 | 解決 |
|---|---|---|
| pane 裡指令卡死 | 標準輸出滿了 | 加管線 `| cat` 或重新導向到檔案 |
| 剪貼簿不共用 | 系統 clipboard 未整合 | macOS 用 `tmux set -g set-clipboard on`,Linux 需額外設定 |
| 重啟後 session 遺失 | 未設定 persist 或未掛載 volume | 結合 systemd user service 或 `tmux-sessionizer` 自動恢復 |
| 視窗殘留 | 異常退出 | `tmux kill-server` 清理殘留(謹慎) |
tmux 的價值在於「可中斷的連續性」。不追求複雜的複用,先跑起一個 session,感受它帶來的安全感,再慢慢挖掘更多功能。
參考資料
- 官方文件:https://tmux.github.io
- 《tmux 2.0 實踐指南》by 趙攀(中國作者)
- 配色方案推薦:https://github.com/altercation/solarized
⚙️ 安装与赋能
clawhub install skill-20260727-tmux-session安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。