名稱 -- 終端多路復(fù)用器
語法
tmux [-2CDluvV] [-c shell-command] [-f file] [-L socket-name] [-S socket-path] [-T features] [command [flags]]
描述
可以在單個(gè)屏幕中啟用多個(gè)終端.也可以從當(dāng)前屏幕脫離并保持在后臺(tái)運(yùn)行,然后隨時(shí)再重新拉到前臺(tái)運(yùn)行混聊。
tmux啟動(dòng)后,會(huì)創(chuàng)建一個(gè)含有一個(gè)窗口的會(huì)話贸营。屏幕的底部是狀態(tài)欄用以顯示當(dāng)前會(huì)話并被用于進(jìn)入交互命令中器一。
- 輸入tmux啟動(dòng)tmux.png
-
啟動(dòng)tmux后的界面.png
會(huì)話是tmux控制下的一個(gè)偽終端的集合者填。每個(gè)會(huì)話都有多個(gè)windows與它連接探越。一個(gè)窗口指的就是啟動(dòng)tmux的時(shí)候整塊屏幕顯示的內(nèi)容雁比,可以被分割成矩形窗格腺兴。每個(gè)窗格都是一個(gè)偽終端(指可以單獨(dú)輸入和輸出執(zhí)行shell)。 任何數(shù)量的tmux實(shí)例都可以連接到同一個(gè)會(huì)話牌废,任何數(shù)量的窗口都可以出現(xiàn)在同一個(gè)會(huì)話中。 一旦所有會(huì)話 被殺死啤握,tmux就退出了鸟缕。
每個(gè)會(huì)話都是會(huì)持久存在的,即便意外斷開連接(指ssh連接超時(shí)之類的)或者主動(dòng)使用Ctrl-b d
分離排抬,之后都可以使用tmux attach -t
重新附加回來懂从。
在tmux中,會(huì)話由客戶端將其顯示在屏幕上并且所有的會(huì)話都是服務(wù)器管理蹲蒲。服務(wù)器和每個(gè)客戶端都是分離的進(jìn)程番甩,它們之間通過在/tmp目錄下的socket進(jìn)行通信。
image.png
啟動(dòng)tmux時(shí)有如下選項(xiàng)(截取部分選項(xiàng)): - -2 強(qiáng)制終端支持256位色彩
- -C 以控制模式啟動(dòng)(可以查看控制模式部分的內(nèi)容)
- -V 返回tmux版本號(hào)
- -f 指定配置文件届搁。默認(rèn)情況下會(huì)加載系統(tǒng)配置文件(/usr/local/etc/tmux.conf)缘薛,然后再查找用戶級(jí)的配置文件~/.tmux.conf。
配置文件是一套tmux命令卡睦,在其服務(wù)器初次啟動(dòng)的時(shí)候會(huì)按照順序執(zhí)行宴胧。tmux會(huì)在服務(wù)進(jìn)程啟動(dòng)之后加載配置文件。除此之外表锻,還可以在之后再次使用source-file
命令來加載配置文件恕齐。
tmux在第一個(gè)會(huì)話創(chuàng)建的時(shí)候就會(huì)顯示配置文件中任何的命令的錯(cuò)誤信息,并且繼續(xù)去處理剩余的配置文件瞬逊。
隨便寫個(gè)字符串到tmux配置文件中
然后在啟動(dòng)tmux的時(shí)候就提示了配置文件中的命令錯(cuò)誤 - -L 套接字名字显歧。用以啟動(dòng)多個(gè)tmux服務(wù)進(jìn)程,而且這樣也可以讓啟動(dòng)tmux的時(shí)候和不同的tmux服務(wù)進(jìn)行交互
- -v 請(qǐng)求的詳細(xì)日志。日志信息會(huì)被存儲(chǔ)到當(dāng)前目錄的tmux-client-PID.log和 tmux-server-PID.log文件中确镊,其中PID是對(duì)應(yīng)的客戶端或者服務(wù)器的進(jìn)程id士骤。
- command [命令選項(xiàng)],這個(gè)命令是用于控制tmux的命令蕾域,如果沒有指定命令的話敦间,默認(rèn)會(huì)執(zhí)行new-session命令來新建一個(gè)會(huì)話。
默認(rèn)的鍵位綁定
tmux可以通過使用前綴鍵的組合來控制,默認(rèn)情況下是 "C-b"(Ctrl-b),后面再加上一個(gè)命令鍵廓块。
默認(rèn)的命令綁定是:
- Ctrl-b 前綴按鍵厢绝,后面再跟其他按鍵
- ?,查看當(dāng)前所有的鍵位綁定設(shè)置
- t, 顯示當(dāng)前時(shí)間
多窗格操作: - 上下左右方向鍵带猴,往四個(gè)方向的窗格移動(dòng)光標(biāo)
- x, 殺死當(dāng)前窗格
- {, 與上一個(gè)活躍的窗格交換位置
- },與下一個(gè)活躍的窗格交換位置
- o昔汉,選擇到下一個(gè)窗格
- q,查看所有窗格編號(hào)
窗口操作: - 0-9選擇0-9號(hào)窗口
- % 水平切分窗格為2個(gè)
- " 垂直切分窗格為2個(gè)
- &,殺死當(dāng)前窗口
- c,在當(dāng)前會(huì)話中新建一個(gè)窗口
- n, 切換到下一個(gè)窗口
- p, 切換到上一個(gè)窗口
會(huì)話操作: - $拴清,重命名當(dāng)前會(huì)話
- w, 從彈出列表上選擇要切換的窗口
客戶端操作: - ),切換到下一個(gè)客戶端,如果你開了兩個(gè)終端并且分別啟動(dòng)了一個(gè)tmux客戶端的話靶病,使用該快捷鍵切換使得兩個(gè)終端中顯示同一個(gè)客戶端的話你會(huì)發(fā)現(xiàn)你在其中一個(gè)終端中的輸入會(huì)同步在兩個(gè)終端中顯示,因?yàn)檫@個(gè)時(shí)候兩個(gè)終端顯示的是同一個(gè)tmux客戶端口予,所以里面的窗口內(nèi)容也是一致的娄周。
- (,切換到上一個(gè)客戶端
復(fù)制模式:
- [: 我一般是使用這個(gè)模式來讓我可以通過鼠標(biāo)來滾屏