跳到主內容

【Tool】tmux

📦 tmux 簡易說明

tmux(Terminal Multiplexer)是一個強大的終端複用工具,可以在單一終端視窗中同時管理多個工作階段(sessions)、視窗(windows)、與窗格(panes)。


🚀 tmux 的核心概念

  1. Session(工作階段)

    • 一個 tmux session 可以包含多個視窗,像是一個獨立的工作空間。
    • 支援在背景運行,即使關閉終端也不會中斷。
    • image-1739418422966.png

  2. Window(視窗)

    • 每個 session 裡可以有多個視窗,每個視窗類似一個完整的終端畫面。
    • 視窗可分割成多個窗格,方便同時監控多個任務。
    • image-1739418697038.png

  3. Pane(窗格)

    • 視窗內的分割區域,每個窗格可獨立執行命令。
    • 支援水平與垂直分割,方便進行多任務操作。
    • image-1739418735165.png


安裝 tmux

Ubuntu 安裝 tmux

Ubuntu 官方倉庫提供了 tmux,可直接使用 apt 安裝:

sudo apt update
sudo apt install tmux -y

macOS 安裝 tmux

macOS 用戶可以透過 Homebrew 安裝:

brew install tmux

🔍 更新或移除 tmux

Ubuntu

  • 更新
    sudo apt update && sudo apt upgrade tmux
    
  • 移除
    sudo apt remove tmux -y
    

macOS

  • 更新
    brew upgrade tmux
    
  • 移除
    brew uninstall tmux
    

🎯 結論

作業系統 推薦安裝方式
Ubuntu sudo apt install tmux -y
macOS brew install tmux

這樣就完成了 tmux 的安裝!🚀 你可以開始使用它來管理多個終端環境了! 💻🎉


⌨️ 常用指令快速上手

功能 指令 / 快捷鍵 說明
 session
啟動 tmux tmux 開啟一個新的 tmux session
  tmux new -s 名稱   開啟一個新的 tmux session 使用自訂名稱
查看所有 session tmux ls 列出目前所有 tmux session
切換 session Ctrl-b s

圖形化切換session

(如果該session 內有多視窗,可按 -> 選擇換到該視窗)

離開 tmux(保持運行) Ctrl-b d 分離 session,回到原本終端
離開 tmux(結束此session) Ctrl-b x 結束目前session,回到原本終端
重新連接 session tmux attach -t 名稱 重新連接到未結束的 session
刪除 session 

tmux kill-session -t 名稱

 刪除指定名稱session
刪除所有 session 

tmux kill-server

 
重新命名 session Ctrl-b $ 當前session 改名
  tmux rename-session -t 舊名稱 新名稱 修改指令 session 名稱
window
建立新視窗 Ctrl-b c 建立一個新的視窗
切換視窗 Ctrl-b w 圖形化切換window
  Ctrl-b n / p 切換到下一個/上一個視窗
關閉視窗 Ctrl-b x 關閉當前視窗
Pane
分割窗格(垂直) Ctrl-b " 垂直分割出新窗格
分割窗格(水平) Ctrl-b % 水平分割出新窗格
切換窗格 Ctrl-b 方向鍵 在窗格間切換
  vi  ~/.tmux.conf 
加入set  -g mouse on

使用滑鼠切換

使用滑鼠調整分割線

其他
命令模式 Ctrl-b : 進入命令模式,可執行 tmux 指令

🎯 常見使用情境

  • 遠端連線不中斷: 即使 SSH 斷線,tmux session 仍會在伺服器上持續運行。
  • 多任務同時進行: 在一個終端視窗內同時監控多個任務、Log 或服務狀態。
  • 自動化腳本執行: 方便長時間執行的任務或背景作業管理。

常見問題

已在某session 內要新建session 

image-1739416150135.png

或是要切換到另一個session

image-1739416354391.png

這代表 你已經在一個 tmux session 裡,然後又試圖附加(attach)到另一個 session。tmux 預設不建議這種「嵌套 session」的行為,因為可能會導致控制鍵衝突或混亂。

建議方式:

建立session:離開tmux 模式Ctrl-b d,在建立新的session : tmux or tmux new -s 名稱

切換session: Ctrl-b s 切換

image-1739416638882.png


 

以下是 tmux 快速鍵表格:

快速鍵 功能說明
C-b Space 選擇下一個佈局
C-b ! 將窗格分離到新視窗
C-b " 垂直分割視窗
C-b # 列出所有剪貼簿
C-b $ 重新命名當前工作階段
C-b % 水平分割視窗
C-b & 關閉當前視窗
C-b ' 輸入視窗索引以切換
C-b ( 切換到上一個客戶端
C-b ) 切換到下一個客戶端
C-b , 重新命名當前視窗
C-b - 刪除最近的剪貼簿
C-b . 移動當前視窗
C-b / 顯示按鍵綁定說明
C-b 0~9 選擇對應編號的視窗
C-b : 輸入命令提示符
C-b ; 切換到上次使用的窗格
C-b = 從清單中選擇剪貼簿
C-b ? 列出所有按鍵綁定
C-b C 自訂選項
C-b D 從清單中選擇並分離客戶端
C-b E 平均分配所有窗格
C-b L 切換到最後一個客戶端
C-b M 清除標記的窗格
C-b [ 進入複製模式
C-b ] 貼上最近的剪貼簿
C-b c 建立新視窗
C-b d 分離當前客戶端
C-b f 搜尋窗格
C-b i 顯示視窗資訊
C-b l 切換到上個視窗
C-b m 標記或取消標記窗格
C-b n 選擇下一個視窗
C-b o 選擇下一個窗格
C-b p 選擇上一個視窗
C-b q 顯示窗格編號
C-b r 重新整理當前客戶端
C-b s 從清單中選擇工作階段
C-b t 顯示時鐘
C-b w 從清單中選擇視窗
C-b x 關閉當前窗格
C-b z 放大/還原當前窗格
C-b { 與上方窗格交換位置
C-b } 與下方窗格交換位置
C-b ~ 顯示訊息
C-b DC 重置視窗以跟隨游標
C-b PPage 進入複製模式並向上捲動
C-b ↑/↓/←/→ 選擇相對方向的窗格
C-b M-1~M-7 設定不同的視窗佈局
C-b M-n 選擇下一個有警示的視窗
C-b M-o 反向循環切換窗格
C-b M-p 選擇上一個有警示的視窗
C-b M-↑/↓/←/→ 調整窗格大小 (每次5個單位)
C-b C-b 傳送前綴鍵
C-b C-o 循環切換窗格
C-b C-z 暫停當前客戶端
C-b C-↑/↓/←/→ 調整窗格大小
C-b S-↑/↓/←/→ 移動視窗的可見部分