Tmux 和 gun/screen 都是優秀的終端復用軟體,它的關鍵的好處就是,保持ssh 登錄連接session不中斷,並且能支持分屏操作,具備豐富的命令行參數,可以進行動態佈局和操作。可以看作為screen 命令的升級版。很多linux 的發行版都包含screen 命令,而tmux 命令需要進行 ...
Tmux 和 gun/screen 都是優秀的終端復用軟體,它的關鍵的好處就是,保持ssh 登錄連接session不中斷,並且能支持分屏操作,具備豐富的命令行參數,可以進行動態佈局和操作。可以看作為screen 命令的升級版。很多linux 的發行版都包含screen 命令,而tmux 命令需要進行使用包管理工具進行安裝。我們使用yum 命令進行搜索查看:
➜ Desktop yum search tmux Failed to synchronize cache for repo 'google-chrome-mirrors', disabling. Last metadata expiration check: 0:34:26 ago on Fri 27 Jul 2018 02:16:34 PM CST. ============================================ Name Exactly Matched: tmux ============================================= tmux.x86_64 : A terminal multiplexer =========================================== Summary & Name Matched: tmux ============================================ tmux-powerline.noarch : Powerline for tmux python2-libtmux.noarch : Scripting library for tmux python3-libtmux.noarch : Scripting library for tmux tmuxinator-doc.noarch : Documentation for tmuxinator tmuxinator.noarch : Create and manage complex tmux sessions easily tmux-top.x86_64 : Monitoring information for your tmux status line.
➜ Desktop yum info tmux Failed to synchronize cache for repo 'google-chrome-mirrors', disabling. Last metadata expiration check: 0:34:56 ago on Fri 27 Jul 2018 02:16:34 PM CST. Installed Packages Name : tmux Version : 2.7 Release : 1.fc28 Arch : x86_64 Size : 765 k Source : tmux-2.7-1.fc28.src.rpm Repo : @System From repo : updates Summary : A terminal multiplexer URL : https://tmux.github.io/ License : ISC and BSD Description : tmux is a "terminal multiplexer." It enables a number of terminals (or : windows) to be accessed and controlled from a single terminal. tmux is : intended to be a simple, modern, BSD-licensed alternative to programs such : as GNU Screen.
由這兩個命令可以查看 tmux 的包信息; 下麵列出幾個tmux 進程使用的命令。
tmux 架構: tmux 使用典型的 c/s 架構
server 伺服器,輸入tmux命令時就開啟了一個伺服器
session 會話,一個伺服器可以包含多個會話
window 視窗,一個會話可以包含多個視窗
pane 面板,一個視窗可以包含多個面板
tmux 的使用:
https://www.cnblogs.com/kevingrace/p/6496899.html
命令:
Ctrl+b | 激活控制台;此時以下按鍵生效 | |
系統操作 | ? | 列出所有快捷鍵;按q返回 |
d | 脫離當前會話;這樣可以暫時返回Shell界面,輸入tmux attach能夠重新進入之前的會話 | |
D | 選擇要脫離的會話;在同時開啟了多個會話時使用 | |
Ctrl+z | 掛起當前會話 | |
r | 強制重繪未脫離的會話 | |
s | 選擇並切換會話;在同時開啟了多個會話時使用 | |
: | 進入命令行模式;此時可以輸入支持的命令,例如kill-server可以關閉伺服器 | |
[ | 進入複製模式;此時的操作與vi/emacs相同,按q/Esc退出 | |
~ | 列出提示信息緩存;其中包含了之前tmux返回的各種提示信息 | |
視窗操作 | c | 創建新視窗 |
& | 關閉當前視窗 | |
數字鍵 | 切換至指定視窗 | |
p | 切換至上一視窗 | |
n | 切換至下一視窗 | |
l | 在前後兩個視窗間互相切換 | |
w | 通過視窗列表切換視窗 | |
, | 重命名當前視窗;這樣便於識別 | |
. | 修改當前視窗編號;相當於視窗重新排序 | |
f | 在所有視窗中查找指定文本 | |
面板操作 | ” | 將當前面板平分為上下兩塊 |
% | 將當前面板平分為左右兩塊 | |
x | 關閉當前面板 | |
! | 將當前面板置於新視窗;即新建一個視窗,其中僅包含當前面板 | |
Ctrl+方向鍵 | 以1個單元格為單位移動邊緣以調整當前面板大小 | |
Alt+方向鍵 | 以5個單元格為單位移動邊緣以調整當前面板大小 | |
Space | 在預置的面板佈局中迴圈切換;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled | |
q | 顯示面板編號 | |
o | 在當前視窗中選擇下一面板 | |
方向鍵 | 移動游標以選擇面板 | |
{ | 向前置換當前面板 | |
} | 向後置換當前面板 | |
Alt+o | 逆時針旋轉當前視窗的面板 | |
Ctrl+o | 順時針旋轉當前視窗的面板 |
tmux Session 管理:
tmux new -s newss : 創建一個新的session 名叫 : newss , 預設輸入命令tmux 即創建一個新的session並命名為0開始的編號
tmux ls : 列出當前所有的tmux session
tmux attach -t session : 重新進入到新的session 之中
tmux 拷貝模式:
- Ctrl+a 按 [ 進入 tmux屏幕拷貝模式
- 然後按空格鍵開始複製
- 使用類似vim的上下左右鍵方式進行選中
- 按enter退出複製模式
- Ctrl+a 按 ] 進行粘貼
通過瞭解以上命令,我們就能很方便得使用 tmux 作為我們生活中的工具。當然使用 tmux 還可以進行session 同步實現 遠程桌面 的效果,這個就不細講了。
tmux bsd man page : http://man.openbsd.org/tmux
使用展示:
保持更新,轉載請註明出處。