tmux簡單教程

2022-05-01 04:12:07 字數 4873 閱讀 5162

在日常工作中,總是感覺用putty連線linux乙個視窗不夠用,再開新的視窗又比較麻煩,於是想到是否可以在乙個ssh會話中可以開啟多個終端,最後我找到了很強大而且使用廣泛的tmux多終端管理器。

tmux是乙個優秀的終端復用軟體,類似gnu screen,但來自於openbsd,採用bsd授權。使用它最直觀的好處就是,通過乙個終端登入遠端主機並執行tmux後,在其中可以開啟多個控制台而無需再使用更多的ssh會話來連線這台遠端主機;其功能遠不止於此。

1、安裝

在freebsd中可以直接使用ports工具安裝,位置在:/usr/ports/sysutils/tmux/,ubuntu系統下預設自帶byou,與tmux很像,甚至快捷鍵都是一樣的。這裡只詳細說明在centos6.3下如何安裝和使用tmux的。

centos6.3的軟體庫里沒有tmux,只有screen,所以要想使用tmux需要自己編譯安裝。

wget

(2) 編譯安裝:

tar zxvf tmux-1.6.tar.gz

cd tmux-1.6

./configure

make;make install

2、啟動tmux

安 裝完成後輸入命令tmux即可開啟軟體,介面十分簡單,類似乙個下方帶有狀態列的終端控制台;但根據tmux的定義,在開啟了tmux伺服器後,會首先創 建乙個會話,而這個會話則會首先建立乙個視窗,其中僅包含乙個面板;也就是說,這裡看到的所謂終端控制台應該稱作tmux的乙個面板,雖然其使用方法與終 端控制台完全相同。

tmux使用c/s模型構建,主要包括以下單元模組:

乙個tmux命令執行後啟動乙個tmux服務

乙個tmux服務可以擁有多個session,乙個session可以看作是tmux管理下的偽終端的乙個集合

乙個session可能會有多個window與之關聯,每個window都是乙個偽終端,會佔據整個螢幕

乙個window可以被分割成多個pane

多個pane的編號規則,以3個pane為例:

1 | 2

3、tmux快捷鍵

tmux在會話中使用大量的快捷鍵來控制多個視窗、多個會話等。

[cpp] view plaincopy在code上檢視**片派生到我的**片

ctrl+b // 啟用控制台;此時以下按鍵生效

系統操作

tmux ls //列出已有會話(list-sessions)

tmux a -t 1//來連線到第乙個會話

c-b t //鐘錶

? // 列出所有快捷鍵;按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 // 順時針旋轉當前視窗的面板

4、配置檔案

tmux配置檔案在~/.tmux.conf和/etc/tmux.conf中,配置檔案中可以修改預設繫結的快捷鍵

配置檔案示例:

[cpp] view plaincopy在code上檢視**片派生到我的**片

// 此類配置可以在命令列模式中輸入show-options -g查詢

set-option -g base-index 1 // 視窗的初始序號;預設為0,這裡設定為1

set-option -g display-time 5000 // 提示資訊的持續時間;設定足夠的時間以避免看不清提示,單位為毫秒

set-option -g repeat-time 1000 // 控制台啟用後的持續時間;設定合適的時間以避免每次操作都要先啟用控制台,單位為毫秒

set-option -g status-keys vi // 操作狀態列時的預設鍵盤布局;可以設定為vi或emacs

set-option -g status-right 「#(date +%h:%m』 『)」 // 狀態列右方的內容;這裡的設定將得到類似23:59的顯示

set-option -g status-right-length 10 // 狀態列右方的內容長度;建議把更多的空間留給狀態列左方(用於列出當前視窗)

set-option -g status-utf8 on // 開啟狀態列的utf-8支援

// 此類設定可以在命令列模式中輸入show-window-options -g查詢

set-window-option -g mode-keys vi // 複製模式中的預設鍵盤布局;可以設定為vi或emacs

set-window-option -g utf8 on // 開啟視窗的utf-8支援

// 將啟用控制台的快捷鍵由ctrl+b修改為ctrl+a,ctrl+a是screen的快捷鍵

set-option -g prefix c-a

unbind-key c-b

bind-key c-a send-prefix

// 新增自定義快捷鍵

bind-key z kill-session // 按z結束當前會話;相當於進入命令列模式後輸入kill-session

bind-key h select-layout even-horizontal // 按h將當前面板布局切換為even-horizontal;相當於進入命令列模式後輸入select-layout even-horizontal

bind-key v select-layout even-vertical // 按v將當前面板布局切換為even-vertical;相當於進入命令列模式後輸入select-layout even-vertical

下面幾個是作者在日常工作中常用到的命令,事實上還有其他很多,但是一般用不到,也就不在這裡介紹,如果有興趣,可以參考官方教程。

tmux所有自帶命令都預設需要先按ctrl + b,然後再鍵入對應的命令

ctrl+b " - split pane horizontally

ctrl+b % - 將當前窗格垂直劃分

ctrl+b 方向鍵 - 在各窗格間切換

ctrl+b,並且不要鬆開ctrl,方向鍵 - 調整窗格大小

ctrl+b c - (c)reate 生成乙個新的視窗

ctrl+b n - (n)ext 移動到下乙個視窗

ctrl+b p - (p)revious 移動到前乙個視窗.

ctrl+b 空格鍵 - 採用下乙個內建布局 

ctrl+b q - 顯示分隔視窗的編號 

ctrl+b o - 跳到下乙個分隔視窗 

ctrl+b & - 確認後退出 tmux 

這幾個命令都試幾遍,這個工具基本上也就算上手了,簡單才是最重要的。

再順便提乙個「高階」點的用法:

我經常進了tmux後會習慣地再生成幾個窗格,好比上面那個圖中的布局,左邊乙個,右邊上下各乙個。而每次進了tmux都這樣輸命令,是不是很麻煩?有沒有辦法一進tmux,就自動生成如上的布局,答案是有的,方法應該不止一種。下面提供乙個作者選用的方法:

首先寫乙個指令碼,來建立各個窗格

~/.tmux/mylayout

selectp -t 0    #選中第0個窗格

splitw -h -p 50  #將其分成左右兩個

selectp -t 1     #選中第乙個,也就是右邊那個

splitw -v -p 50  #將其分成上下兩個,這樣就變成了圖中的布局了

selectp -t 0     #選回第乙個

在.tmux.conf 後面加上一句

bind d source-file ~/.tmux/mylayout  

結束,這樣每次進入tmux後,鍵入 ctrl + b d

(d是大寫,要按shrift,你也可以按成其他字元,只要跟tmux已經用的不衝突即可),即會自動執行mylayout指令碼,生成圖示布局。如果

.tmux.conf 檔案不存在的話,請自己生成。注意前面有個.(點)

另外還有一些小功能,通過在.tmux.conf中新增相應的命令開啟對應的功能即可:

滑鼠可以選中窗格  set-option -g mouse-select-pane on

滑鼠滾輪可以用    set-window-option -g mode-mouse on

tmux使用教程

1,三個概念session,window,panel 2,session的操作 建立並指定session名字 tmux new s session name 臨時退出session ctrl b d 列出session tmux ls 進入已存在的session tmux a t session n...

tmux使用教程

brew install tmux在開啟了tmux服務後,會首先建立乙個會話,而這個會話則會首先先建立乙個視窗,其中僅包含乙個面板 也就是說,這裡看到的所謂終端控制台應該稱作tmux的乙個面板,雖然其使用方法與終端控制台完全相同 tmux使用c s模型構建,主要包括以下單元模組 server伺服器。...

Tmux 使用教程

命令列的典型使用方式是,開啟乙個終端視窗 terminal window,以下簡稱 視窗 在裡面輸入命令。使用者與計算機的這種臨時的互動,稱為一次 會話 session 會話的乙個重要特點是,視窗與其中啟動的程序是連在一起的。開啟視窗,會話開始 關閉視窗,會話結束,會話內部的程序也會隨之終止,不管有...