天天看點

Tmux 學習摘要1--使用預設配置進行基本操作快捷鍵的表示及按鍵規則安裝開啟 tmux脫離和關聯會話多視窗操作多窗格操作使用指令模式總結

tmux 是一個運作于 OS X 和 Unix 上的終端分屏軟體 terminal multiplexer。

快捷鍵的表示及按鍵規則

  • CTRL-b

    : 同時按下

    CTRL

    鍵和

    b

  • CTRL-R

    : 同時按下

    CTRL

    SHIFT

    r

  • CTRL-b d

    : 同時按下

    CTRL

    鍵和

    b

    鍵,再松開,然後再迅速按下

    d

安裝

在 OS X 上:

$ brew install tmux
           

在 Debian 和 Ubuntu 上:

$ sudo apt-get install tmux
           

确定是否安裝成功:

$ tmux -V
           

開啟 tmux

開啟 tmux 隻需輸入指令:

$ tmux
           

執行後會打開一個 tmux 會話,和普通的終端會話一樣,可以在裡面輸入和執行任何指令。

要想從該 tmux 會話中退回到普通的終端,輸入指令:

$ exit
           

以上的使用方式用處不大,應該使用 “命名會話”。

建立命名會話

一台機器上可以有多個會話,要使各會話組織有序,應對其命名。

建立一個命名為 basic 的會話:

$ tmux new-session -s basic
           

也可以用簡寫的指令:

$ tmux new -s basic
           

脫離和關聯會話

tmux 是一個 CS 模式的程式,當開啟一個 tmux 會話時,會話就是一個伺服器。所有在該會話環境中開啟的程式和程序都由這個會話伺服器管理。當你與該會話 “脫離” 時,由于會話還沒有結束,這些開啟的程式和程序都會在背景繼續運作。之後,我們可以重新 “關聯” 該會話,繼續之前的工作。

示例:

先建立一個命名會話:

$ tmux new -s basic
           

在該會話中,開啟一個 top 指令:

$ top
           

然後使用快捷鍵

CTRL-b d

從目前會話中脫離出來,脫離後,會回到普通的終端中。

CTRL-b d

快捷鍵的正确按法是:先同時按下

CTRL

鍵和

b

鍵作為 tmux 指令的字首,再全部松開按鍵,然後迅速按下代表 tmux 指令的

d

鍵,将 d 指令發送給 tmux。

指令字首

tmux 的預設指令字首是

CTRL-b

,記為

PREFIX

,可以對該設定進行再綁定。

重新關聯到現有的會話

列出目前機器上的全部會話:

$ tmux list-sessions
           

也可以用簡寫指令:

$ tmux ls
           

該指令會顯示目前隻有一個會話:

basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23]
           

要想關聯現有的會話,如果隻有一個會話的話,直接:

$ tmux attach
           

先用

PREFIX d

從目前會話脫離,再建立一個新的會話但不自動關聯:

tmux new -s second_session -d
           

此時羅列會話指令會出來有兩個會話:

tmux ls
           
basic: 1 windows (created Sat Jul 30 09:48:32 2016) [80x23]
second_session: 1 windows (created Sat Jul 30 09:52:31 2016) [80x23]
           

可以用

-t

(target?) 選項來指定關聯的會話:

$ tmux attach -t second_session
           

關閉會話

在 tmux 會話内部,可以用

exit

指令直接銷毀和退出目前會話。在普通終端下也可以用

kill-session

進行:

$ tmux kill-session -t basic
$ tmux kill-session -t second_session
           

如果某個會話中有僵死的程式,可以用這個方法來關閉整個會話。

多視窗操作

在一個 tmux 會話中可以同時運作多個程式,tmux 在會話中可以使用多視窗對多個程式進行有序組織和管理。

當開啟一個會話時,會自動建立一個初始視窗,之後,在會話中可以再建立更多的視窗。

建立一個命名為 windows 的會話,并将第一個(預設)視窗命名為 shell:

$ tmux new -s windows -n shell
           

在會話中建立一個新視窗

在會話中,使用快捷鍵

PREFIX c

建立一個新的視窗。并在該視窗中運作

top

指令。注意到,該視窗的名稱是基于運作的程式而動态變化的。為友善管理,應對其顯式命名,方法是在使用快捷鍵

PREFIX ,

後,在狀态欄中輸入名稱,如 Processes。

在會話中的視窗間切換

目前焦點視窗的視窗名上會有一個

*

号。視窗切換可以用以下快捷鍵:

  • PREFIX n

    : 移到下一個(可往複循環)
  • PREFIX p

    : 移到上一個(可往複循環)
  • PREFIX 編号

    : 直接移到某編号的視窗,如

    PREFIX 0

  • PREFIX f

    : 根據視窗名來定位
  • PREFIX w

    : 顯示出一個含有所有視窗名稱的清單視窗,供選擇切換

要關閉目前視窗,在視窗中直接運作

exit

指令。也可以用快捷鍵

PREFIX &

,它會在狀态欄進行确認操作。當所有視窗都關閉後,會話也随之關閉。

多窗格操作

一個視窗可以分割成多個窗格。并在每個窗格中運作不同程式。

建立一個新的會話,練習多窗格操作:

$ tmux new -s panes
           

窗格分割快捷鍵:

  • PREFIX %

    : 水準平均分割
  • PREFIX "

    : 垂直平均分割

在各窗格間切換焦點,用快捷鍵

PREFIX o

,也可以用

PREFIX 方向鍵

進行切換。

窗格布局模闆

内置的幾種布局模闆:

  • even-horizontal: 從左到右水準平均布局
  • even-vertical: 從上到下垂直平均布局
  • main-horizontal: 上側一個大窗格,其它的在下邊
  • main-vertical: 左側一個大窗格,其它的在右邊
  • tiled: 所有窗格在螢幕上平均布局

可以用快捷鍵

PREFIX SPACEBAR

依次在各布局模闆間切換。

關閉窗格

用快捷鍵

PREFIX x

使用指令模式

目前使用的快捷鍵都是 tmux 指令的快捷鍵。tmux 指令即可以在終端指令行中運作,也可以和 VI 類似,在指令模式下的狀态行中運作。

在會話中,進入指令模式用快捷鍵

PREFIX :

, 此時,可以在狀态欄中運作相應的 tmux 指令,如建立一個命名為 console 的新視窗:

new-window -n console

建立一個命名視窗,同時執行 “top” 指令:

new-window -n processes "top"

,這樣建立的視窗當視窗中的指令執行完畢後,視窗會自動關閉。

總結

快捷鍵

PREFIX ?

列出所有的快捷鍵。

建立會話的指令:

指令 | 描述

----------------------------|

tmux new-session | 建立一個匿名會話,可以簡寫為

tmux new

或直接

tmux

tmux new -s devel | 建立一個命名為 “devel” 的會話

tmux new -s devel -n editor | 建立一個名稱為 “devel” 的會話,且将第一個視窗命名為 “editor”

tmux attach -t devel | 關聯到名為 “devel” 的會話

關于會話、視窗、窗格的預設指令

指令 | 描述

-------------|

PREFIX d | 脫離會話,會話會在背景繼續運作

PREFIX : | 進入指令模式

PREFIX c | 在會話中建立一個新視窗,對應 tmux 指令

new-window

PREFIX 0…9 | 根據視窗編号在視窗中切換

PREFIX w | 顯示出目前會話中所有的視窗,供選擇切換

PREFIX , | 命名目前視窗

PREFIX & | 關閉目前視窗

PREFIX % | 水準平均分割視窗

PREFIX " | 垂直平均分割視窗

PREFIX o | 在多個窗格間循環切換

PREFIX q | 顯示窗格的編号

PREFIX x | 關閉目前窗格

PREFIX SPACE | 在各窗格布局前切換

參考資源:

tmux: Productive Mouse-Free Development

下一篇: TMUX - tips

繼續閱讀