【Tool】tmux 📦 tmux 簡易說明 tmux(Terminal Multiplexer)是一個強大的終端複用工具,可以在單一終端視窗中同時管理多個工作階段(sessions)、視窗(windows)、與窗格(panes)。 🚀 tmux 的核心概念 Session(工作階段): 一個 tmux session 可以包含多個視窗,像是一個獨立的工作空間。 支援在背景運行,即使關閉終端也不會中斷。 Window(視窗): 每個 session 裡可以有多個視窗,每個視窗類似一個完整的終端畫面。 視窗可分割成多個窗格,方便同時監控多個任務。 Pane(窗格): 視窗內的分割區域,每個窗格可獨立執行命令。 支援水平與垂直分割,方便進行多任務操作。 安裝 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 ⌨️ 常用指令快速上手 功能 指令 / 快捷鍵 說明  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   tmux a  重新連接上次中斷seeion 刪除 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 視窗編號     Ctrl-b n / p 切換到下一個/上一個視窗 關閉視窗 Ctrl-b & 關閉當前視窗 重新命名 window Ctrl-b , 更名目前window   tmux rename-window -t 舊名稱 新名稱 更名指定window Pane 分割窗格(垂直) Ctrl-b " 垂直分割出新窗格 分割窗格(水平) Ctrl-b % 水平分割出新窗格 切換窗格 Ctrl-b 方向鍵 在窗格間切換   vi  ~/.tmux.conf  加入set  -g mouse on 使用滑鼠切換 使用滑鼠調整分割線 關閉窗格 Ctrl-b x   與上一格窗格互換 Ctrl-b {   與下一格窗格互換 Ctrl-b }   顯示窗格編號 Ctrl-b q   指定窗格互換 tmux swap-pane -s 1 -t 2   其他 命令模式 Ctrl-b : 進入命令模式,可執行 tmux 指令 配置設定檔 vi ~/.tmux.conf set -g mouse on :支持滑鼠 set -g prefix C-s :ctrl + b前缀改成ctrl + s   當滑鼠模式關閉(set -g mouse off)時,作業系統提供的標準複製/貼上功能將如預期運作。 但滑鼠模式開啟(set -g mouse on)時,剪貼簿的功能會造成失效 下面的程式碼可以新增到您的 .tmux.conf 檔案中,以將m和M鍵分別綁定到「滑鼠開啟」和「滑鼠關閉」。 這讓你能夠使用Ctrl+ B,m來開啟滑鼠支援;Ctrl+ B,M將其關閉。 vi ~/.tmux.conf ############################################### # toggle mouse mode to allow mouse copy/paste # set mouse on with prefix m bind m \ set -g mouse on \;\ display 'Mouse: ON' # set mouse off with prefix M bind M \ set -g mouse off \;\ display 'Mouse: OFF' 參考:https://stackoverflow.com/questions/17445100/getting-back-old-copy-paste-behaviour-in-tmux-with-mouse 🎯 常見使用情境 遠端連線不中斷: 即使 SSH 斷線,tmux session 仍會在伺服器上持續運行。 多任務同時進行: 在一個終端視窗內同時監控多個任務、Log 或服務狀態。 自動化腳本執行: 方便長時間執行的任務或背景作業管理。 常見問題 已在某session 內要新建session  或是要切換到另一個session 這代表 你已經在一個 tmux session 裡,然後又試圖附加(attach)到另一個 session。tmux 預設不建議這種「嵌套 session」的行為,因為可能會導致控制鍵衝突或混亂。 建議方式: 建立session:離開tmux 模式 Ctrl-b d,在建立新的session : tmux or tmux new -s 名稱 切換session: Ctrl-b s 切換 or tmux switch-client -t 名稱   以下是 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-↑/↓/←/→ 移動視窗的可見部分 Reference tmux 小記 tmux 使用和基礎配置 從入門到加班 一個視頻全搞定! https://hackmd.io/@Cheng-Hao/Hyk9f6mZd https://blog.csdn.net/qq_41634814/article/details/119426093 you need to learn tmux RIGHT NOW!!