2021-05-12 14:32:11
終端複用工具tmux的使用
tmux的作用在於終端複用。
1. 在server上啟動一個bash,並在裡面執行tmux
2. 通過ssh遠端登入server,執行tmux attach,就會切換到server上的那個bash中,接下來的操作都是在bash中了
3. 此時可以開啟更多的視窗,這樣在遠端就可以像在本地一樣同時使用多個一樣的bash
如果要傳送命令,如下:
tmux send -t checkpoint ls ENTER
註:checkpoint是你已經用tmux建立好的session的名字(tmux new -s checkpoint);ls是shell命令;加上ENTER才能在checkpoint這個session中執行ls命令。
這樣你就不用手動tmux attach到那個session中,再手動執行ls命令。這對使用指令碼是有好處的。
如果這個session有多個視窗:
tmux send -t checkpoint:0 ‘mongoose -t 2’ ENTER
0代表第一個視窗。
結合parallel-ssh就可以遠端使用伺服器的bash環境來執行命令。
這樣的場景是有用的。在一台server上用criu來對一個小程式進行checkpoint,需要criu和小程式都執行在bash中,而不是直接在ssh中,否則checkpoint得到的img檔案就會包含與ssh終端相關聯的資訊(session id),這樣就不能在另一台server上進行restore了,也就是實現不了migration。而如果都在bash中,就不會再有與ssh有關的資訊了,在另一台機器上就可以restore。
tmux快捷鍵
tmux在對談中使用大量的快捷鍵來控制多個視窗、多個對談等。
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 1.8 發布,Linux 終端複用器 http://www.linuxidc.com/Linux/2013-03/81980.htm
Tmux:終端複用器 http://www.linuxidc.com/Linux/2013-07/86776.htm
tmux使用簡單教學 http://www.linuxidc.com/Linux/2014-10/107644.htm
CentOS下Tmux安裝和使用 http://www.linuxidc.com/Linux/2014-11/109375.htm
用 Tmux 和 Vim 打造 IDE http://www.linuxidc.com/Linux/2015-06/119165.htm
相關文章