有時候常常需要 SSH 進 Linux Terminal 進行管理或問題排查,現在動不動就是幾十幾百台 Host,有時候要同時執行命令或看畫面實在不方便。其實有一個很好用的工具叫做 tmux,tmux 全名為 Terminal Multiplexer (終端多工器),可以讓你丟掉滑鼠同時開啟不同的 Terminal 進行工作,全部使用鍵盤進行操作。無論系統管理工作做得如何,至少看起來很炫,學 Hack 一樣炫技必備的工具,如果搭配裝忙神器 genact 就像下面這樣,笑...
tmux 安裝與介紹
Linux 要安裝很簡單,透過標準套件即可安裝,如下:
Ubuntu 環境:
sudo apt-get install tmux
CentOS 環境:
sudo yum install tmux
安裝完成後只要輸入 tmux 就可以進入多終端機管理操作介面,底下綠色的就是 Command Bar,有點像是 vim 的概念。畫面如下:
tmux 的概念是先有 Session,Session 包含了許多 Window,每一個 Window 可以想像為一個虛擬桌面,Window 內包含了很多 Panel,我們可以 Window 中改變 Panel 之間的並列顯示 Layout 等等。
我的習慣會在家目錄 (Home) 創建 .tmux.conf 設定檔,把一些常用的 Hot Key 進行設定,分享一下我的設定如下:
vim ~/.tmux.conf
# Toggle synpanes on bind k \ set synchronize-panes on \;\ display 'SynPanes: ON' # Toggle synpanes off bind K \ set synchronize-panes off \;\ display 'SynPanes: OFF' # Toggle mouse on bind m \ set -g mode-mouse on \;\ set -g mouse-resize-pane on \;\ set -g mouse-select-pane on \;\ set -g mouse-select-window on \;\ display 'Mouse: ON' # Toggle mouse off bind M \ set -g mode-mouse off \;\ set -g mouse-resize-pane off \;\ set -g mouse-select-pane off \;\ set -g mouse-select-window off \;\ display 'Mouse: OFF' # History-limit set -g history-limit 30000 # Use 256 colors set -g default-terminal "screen-256color" bind -n C-v run-shell "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" \; display-message "Pasted" bind -n C-s run "tmux save-buffer - | xclip -selection clipboard > /dev/null" \; display-message "Copied" # default mouse on set -g mode-mouse on set -g mouse-resize-pane on set -g mouse-select-pane on set -g mouse-select-window on
上述的設定檔會開啟滑鼠選擇 Panel 的功能、還有鍵盤同步輸入 Hot Key 方便同時在好幾個終端機執行命令,範例 .tmux.conf 可以從 GitHub 下載。
常用 tmux 熱鍵介紹
Panel 操作
選擇 Panel:<Ctrl> + <b>, <Up> | <Down>
建立新的 Panel:<Ctrl> + <b>, <“>
當下工作 Panel 全螢幕:<Ctrl> + <b>, <z>
Panel 垂直均分:<Ctrl> + <b>, <Esc> + <1>
Panel 水平均分:<Ctrl> + <b>, <Esc> + <2>
Panel 刪除:<Ctrl> + <b>, <x>
顯示 Panel 的號碼:<Ctrl> + <b>, <q>
滑鼠與鍵盤操作
Mouse No 按下 <Shift> + 滑鼠拖曳即可選擇
關閉滑鼠功能:<Ctrl> + <b>, <M>
啟用滑鼠功能:<Ctrl> + <b>, <m>
關閉同步輸入:<Ctrl> + <b>, <K>
啟用同步輸入:<Ctrl> + <b>, <k>
Window 操作
顯示 Window:<Ctrl> + <b>, <w>
建立新的 Window:<Ctrl> + <b>, <c>
切換下一個 Window:<Ctrl> + <b>, <n>
切換前一個 Window:<Ctrl> + <b>, <p>
Session 操作
選擇 Session:<Ctrl> + <b>, <s>
將 Session 丟到背景 (detached) 並離開 tmux:<Ctrl> + <b>, <d>
如果忽然斷線了,再次登入主機可以透過以下方法取回原來的工作:
先列出所有 Session
tmux ls
取回某一個 Seesion
tmux attach -t [Session ID]
以上這些功能我用過以後就回不去了,太好用了。尤其是鍵盤同步輸入...真的超方便der