跳至主要内容

終端機多工器與工作階段管理

FreeBSD Archlinux Photon_OS Oracle_linux WSL Docker

一、 核心工具比較與平台支援度

工具名稱平台支援度核心特點備註說明
screen跨平台 (Linux/FreeBSD/macOS)歷史悠久的傳統標準工具,幾乎所有 Unix-like 系統皆內建。功能相對陽春,已被多數現代開發者淘汰。
tmux跨平台 (Linux/FreeBSD/macOS)業界標準與主流,具備極強的可擴充性與腳本支援。搭配 oh-my-tmux 可達到開箱即用的現代化外觀。
zellij跨平台 (Rust 編寫)現代化、基於 WASM、開箱即用支援滑鼠與豐富 UI 的新星。效能極佳,介面直覺(類似終端機中的 IDE)。

二、 現代主流:tmuxoh-my-tmux 實戰

1. 基礎安裝

  • Arch Linux:

    sudo pacman -S tmux
  • Debian / Ubuntu:

    sudo apt install tmux
  • FreeBSD:

    sudo pkg install tmux

2. oh-my-tmux 配置(美化與快速設定)

透過知名配置專案快速打造高大上的介面:

cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

3. tmux 常用快捷鍵對照表 (Prefix 預設為 Ctrl+aCtrl+b)

(註:若使用 oh-my-tmux,預設 Prefix 通常會對應至 Ctrl+a)

功能說明組合鍵操作 (Prefix 後接著按)
開新 SessionPrefix + C-c
垂直分割 PanePrefix + -%
水平分割 PanePrefix + _"
切換滑鼠模式Prefix + m
重新命名 SessionPrefix + ,
移動焦點到其他區塊Prefix + 方向鍵
從清單選擇視窗Prefix + w
快速切換分頁Prefix + 數字鍵
分離 Session (Detach)Prefix + d (同 screen)

4. 啟動與連線管理指令

  • 列出所有運行中的 Session:

    tmux ls
  • 接回指定的 Session:

    tmux attach -t $數字
    # 或簡寫
    tmux at -t 0
  • 智慧啟動指令(結合自動連線與新增):

    tmux -u attach || tmux -u

5. 進階設定:預設 Shell 與 WSL 自動接管

  • 設定預設 Shell 為 zsh:

    ~/.tmux.conf 內加入:

    set -g default-shell /usr/bin/zsh
  • WSL 自動 Session 銜接:

    將以下片段加入 ~/.zshrc~/.bashrc。這在 WSL 環境中極度好用:關閉終端機視窗後重開,會自動掛載回原本的 Session:

    if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
    tmux attach-session -t default || tmux new-session -s default
    fi

三、 經典祖師爺:GNU screen

雖然 tmux 已經成為主流,但在許多輕量級容器(Docker image)或老舊伺服器中,screen 仍是預設內建的最佳救援工具。

常用指令

  • 啟動新 Session:

    screen -S mysession
  • 列出背景中的 Screen Sessions:

    screen -ls
  • 接回指定的 Screen:

    screen -r mysession
  • 鍵盤快捷鍵:

    • Detach(離開並放背景):按下 Ctrl+a 接著按 d
    • 建立新視窗:Ctrl+a 接著按 c
    • 切換視窗:Ctrl+a 接著按 n (Next) 或 p (Previous)

四、 現代 Rust 終端機新星:zellij

zellij 是一套用 Rust 寫成的終端機多工器,它將排版概念極致簡化,預設提供下方狀態列、面板選單,且對滑鼠支援度極佳。

1. 安裝方式

  • Arch Linux:

    sudo pacman -S zellij
  • Cargo (Rust 套件管理):

    cargo install zellij

2. 基本使用與操作

  • 啟動新工作階段:

    zellij
  • 列出與管理 Sessions:

    zellij list-sessions
  • 接回指定的 Session:

    zellij attach <SESSION_NAME>
  • 核心操作特色:

    • 啟動後畫面的最下方會直接常駐黃藍色的選單提示(Shortcut Bar),透過 Ctrl+p(控制面板)、Ctrl+n(新增面板)即可直接用方向鍵或滑鼠進行直覺操作,不需要死記複雜的 Prefix 組合鍵。