Tmux (Terminal Multiplexer) 讓單一終端機視窗管理多個 Session、Window、Pane,支援分離/重接、腳本化佈局、鍵盤綁定高度客製化,是遠端作業、長時間編譯、多伺服器管理的必備工具。
# Ubuntu / Debian / Mint
sudo apt-get install tmux
# CentOS / RHEL / Fedora (需 EPEL)
sudo yum install tmux
# Arch Linux
sudo pacman -S tmux
# macOS
brew install tmux
| 層級 | 說明 | 常用指令 (Prefix 預設 Ctrl+b) |
|---|---|---|
| Session | 獨立工作環境,可包含多視窗 | new -s name、attach -t name、ls、kill-session -t name |
| Window | Session 內的標籤頁,佔滿終端 | c 建立、n/p 切換、w 列表、, 重命名 |
| Pane | Window 內分割的終端區塊 | % 垂直分割、" 水平分割、o 循環切換、x 關閉、Space 切換佈局 |
# 1. 建立名為 dev 的 session
tmux new -s dev
# 2. 在 session 內建立 3 個 window
# Window 0: 編輯器
vim main.c
# Window 1: 編譯/測試 (Prefix c 建立新 window)
# Prefix :rename-window build
make -j4
# Window 2: 日誌監控 (Prefix c)
# Prefix :rename-window logs
tail -f /var/log/syslog
# 3. 在 Window 0 分割 pane (Prefix %)
# 左側 vim、右側 man gcc
# 4. 分離 session (Prefix d) 保持後台運行
# 5. 稍後重接
tmux attach -t dev
# 更改 Prefix 為 Ctrl+a (類 Screen)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 啟用滑鼠 (tmux 2.1+)
set -g mouse on
# 視窗索引從 1 開始
set -g base-index 1
setw -g pane-base-index 1
# 歷史緩衝區
set -g history-limit 10000
# 狀態列自訂
set -g status-bg colour235
set -g status-fg white
set -g status-left '#[fg=green]#H'
set -g status-right '#[fg=yellow]%Y-%m-%d %H:%M'
# Vim 風格 pane 切換
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R


學習曲線建議: 先熟悉Prefix c/n/p/%/"核心操作,再逐步加入 ~/.tmux.conf 客製化。搭配tmuxinator或tmuxp以 YAML 定義專案佈局,一鍵啟動完整開發環境。