首頁 > 軟體

終端複用工具tmux的使用

2020-06-16 17:57:49

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


IT145.com E-mail:sddin#qq.com