tmux是什么
tmux(terminal multiplexer)是Linux上的終端復用神器,可從一個屏幕上管理多個終端(準確說是偽終端)浪讳。使用該工具,用戶可以連接或斷開會話,而保持終端在后臺運行贺拣。類似的工具還有screen,個人對這二者的使用感受是,用過tmux就再也不想用screen了譬涡。
tmux基本結構
tmux的結構包括會話(session)闪幽、窗口(window)、窗格(pane)三部分涡匀,會話實質(zhì)是偽終端的集合盯腌,每個窗格表示一個偽終端,多個窗格展現(xiàn)在一個屏幕上陨瘩,這一屏幕就叫窗口腕够。基本結構及狀態(tài)信息如下圖所示:
tmux基本操作
基本的操作無非就是對會話舌劳、窗口帚湘、窗格進行管理,包括創(chuàng)建甚淡、關閉大诸、重命名、連接贯卦、分離资柔、選擇等等。
一般使用命令和快捷鍵進行操作撵割,可在系統(tǒng)shell終端和tmux命令模式(類似vim的命令模式)下使用命令贿堰,或者在tmux終端使用快捷鍵。
tmux默認的快捷鍵前綴是Ctrl+b(下文用prefix指代)啡彬,按下前綴組合鍵后松開羹与,再按下命令鍵進行快捷操作,比如使用prefix d分離會話(應該寫作prefix d而不是prefix+d外遇,因為d鍵不需要與prefix同時按下)注簿。
快捷鍵可以自定義,比如將前綴改為Ctrl+a跳仿,但需要保留shell默認的Ctrl+a快捷鍵诡渴,按如下所示修改~/.tmux.conf文件:
<pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">1 set-option -g prefix C-a 2 unbind-key C-b 3 bind-key C-a send-prefix 4 bind-key R source-file ~/.tmux.conf ; display-message "~/.tmux.conf reloaded."</pre>
現(xiàn)在已將原先的Ctrl+a用prefix Ctrl+a取代,即需要按兩次Ctrl+a生效菲语。
第4行的作用是使用prefix r重新加載配置文件妄辩,并輸出提示,否則需要關閉會話后配置文件才能生效山上,也可手動加載配置文件眼耀,在tmux終端輸入"prefix :"進入命令模式,用source-file命令加載配置文件佩憾。
注意哮伟,將多個命令寫在一起作為命令序列時干花,命令之間要用空格和分號分隔。
會話管理
****常用命令****
tmux new 創(chuàng)建默認名稱的會話(在tmux命令模式使用new命令可實現(xiàn)同樣的功能楞黄,其他命令同理池凄,后文不再列出tmux終端命令)
tmux new -s mysession 創(chuàng)建名為mysession的會話
tmux ls 顯示會話列表
tmux a 連接上一個會話
tmux a -t mysession 連接指定會話
tmux rename -t s1 s2 重命名會話s1為s2
tmux kill-session 關閉上次打開的會話
tmux kill-session -t s1 關閉會話s1
tmux kill-session -a -t s1 關閉除s1外的所有會話
tmux kill-server 關閉所有會話
常用快捷鍵
prefix s 列出會話,可進行切換
prefix $ 重命名會話
prefix d 分離當前會話
prefix**** D 分離指定會話
窗口管理
prefix c 創(chuàng)建一個新窗口
prefix , 重命名當前窗口
prefix w 列出所有窗口鬼廓,可進行切換
prefix n 進入下一個窗口
prefix p 進入上一個窗口
prefix l 進入之前操作的窗口
prefix 0~9 選擇編號0~9對應的窗口
prefix . 修改當前窗口索引編號
prefix ' 切換至指定編號(可大于9)的窗口
prefix f 根據(jù)顯示的內(nèi)容搜索窗格
prefix & 關閉當前窗口
窗格管理
prefix % 水平方向創(chuàng)建窗格
prefix " 垂直方向創(chuàng)建窗格
prefix Up|Down|Left|Right 根據(jù)箭頭方向切換窗格
prefix q 顯示窗格編號
prefix o 順時針切換窗格
prefix } 與下一個窗格交換位置
prefix { 與上一個窗格交換位置
prefix x 關閉當前窗格
prefix space(空格鍵) 重新排列當前窗口下的所有窗格
prefix ! 將當前窗格置于新窗口
prefix Ctrl+o 逆時針旋轉當前窗口的窗格
prefix t 在當前窗格顯示時間
prefix z 放大當前窗格(再次按下將還原)
prefix i 顯示當前窗格信息
其他命令
tmux list-key 列出所有綁定的鍵肿仑,等同于prefix ?
tmux list-command 列出所有命令
以上為tmux的常見操作,基本可以滿足大部分的工作需求碎税,至于更高端的操作待日后再整理尤慰。
參看鏈接:tmux簡明教程