tmux 快速入門

為什么要用 tmux

如果你對 tmux 的疑問還停留在:我可以開多個 terminal 的 tab 啊,為什么要用 tmux 呢?那我只能呵呵了。 tmux 的強大之處在于:

  • 可以連接本地或遠程的 sessions
  • 強大的 window 和 pane 管理
  • 在不同的 session 之間移動 window
  • 自動化腳本

基本概念

tmux 這個單詞是 terminal multiplexer 的縮寫。 tmux 可以讓你在一個屏幕中管理多個終端窗口。 先看圖:

tmux 架構

session

tmux 是被設計為 cs 結構的。因此當你啟動 tmux 的時候, 實際上你啟動的是 tmux 的 client。
服務端可能也在你的電腦上或者其他服務器上,總之要連接 client 和 server, 就需要一個 session。
一般來說一個 session 對應這一個 project。

window

一個 session 包含多個 window,這里的 window 比較類似一般 terminal 模擬器的 tab。

pane

一個 window 可以被分割為多個 pane,方便同時查看多個進程的狀態。

快捷鍵

tmux 的快捷鍵可以非常靈活地自定義

配置

tmux 的配置文件位于 $HOME/.tmux.conf (以及一個全局的 /etc/tmux.conf),和大多數 dotfile 一樣,把配置項寫到這個文件中,啟動 tmux的時候就會自動讀取了。 下面是我會列舉一些常用配置。

前綴

這個是所有快捷鍵的基礎,設定了一個 prefix,系統才能知道你后續的操作是對于 tmux 的。
幾乎所有的快捷鍵都是要先輸入 prefix 的。默認的 prefix 是 C-b 。不過這和 emacs 的 back 沖突了。
網上比較主流的設定是 C-a,一來這兩個鍵很近,二來雖然這和 emacs 的回到行首沖突,不過相對于 C-b, C-a 多按幾次也沒有副作用,并且用的頻率沒那么高,所以大多數人都會選擇用 C-a 作為 prefix。
當然,也有人覺得 C-t (t for tmux)是一個不錯的選擇,anyway,把 prefix 當成一個變量即可。

配置項:

set -g prefix C-a # 設定前綴
unbind C-b  # 取消默認的前綴
set -s escape-time 1 # 設定前綴的作用時間
bind C-a send-prefix # 確保可以在其他應用中可以發送 Ctrl-A

常用操作

這里列出的快捷鍵都是按照上面的配置配好之后的結果。
其中有些操縱是默認值所以并沒出現在配置 list 中。

使用 prefix - ? 可以隨時查看快捷鍵列表。

session

配置項:

bind C-c new-session # 創建新的 session
bind C-f command-prompt -p find-session 'switch-client -t %%' # 查找 session

說明:

功能 快捷鍵
新建 session prefix - C-c
返回 session tmux attach -t session-name
列出 sessions tmux list-sessions
查找 session prefix - C-f
重命名 session tmux rename-seesion session-name
切換 session tmux switch -t session-name

window

配置項:

bind -r C-h previous-window # 選定上一個 window
bind -r C-l next-window     # 選定下一個 window
功能 快捷鍵
新建 window prefix-c
關閉 window prefix-&
重命名 window prefix-,
列出 windows prefix-w
切換 window prefix-\[0-9\]

panel

配置項:

bind - splitw -v # 分割成上下兩個窗口
bind | splitw -h # 分割成左右兩個窗口
功能 快捷鍵
橫向切分 window prefix - 豎杠
縱向切分 window prefix - 橫杠
最大化 pane prefix-z
改變 pane 的 layout prefix-space
調整 pane 尺寸 prefix 然后按住(shift)FBNP
切換 pane(順序跳轉) prefix - o
切換 pane(選擇編號) prefix - q 然后按對應的編號

模式

正如 vi 有不同的模式一樣,tmux 也有自己的模式:

default mode

默認模式,就是我們一直在操作的模式。

copy mode

快捷鍵 prefix-[ 就會進入 copy mode。在這個模式下,你可以查看歷史記錄,復制粘貼內容,類似于 vi 的 normal mode。

command mode

類似于在 emacs 下直接輸入指令。一些復雜或冷門的操作可以在這里直接調用。

clock mode

快捷鍵 prefix-t, 會顯示一個時鐘。。。這真的不是一個彩蛋嗎。。。 想要把
prefix 設置成 t 的同學不需要擔心覆蓋掉這個模式了,這模式壓根就沒用啊。。。

高階技巧(插件)

結對編程

如果在結對編程時兩個腦袋湊在一個屏幕前是不是有點擠啊。。。 有了 tmux 就不怕啦。只需要一個 server 端,然后兩個 client 一起連上去。
不但可以共享『屏幕』,還能一起操作同一個文件。 這樣的 common pattern 已經有人封裝好了工具了,就是這個 -- wemux。 不但可以選擇共享模式(mirror,pair,rogue)。還可以踢人哦。。。

初始化工作區

什么?!這個項目需要開啟兩個 redis 端口,一個 rails server,一個 sidekiq 進程。 這還是沒包括 mysql 和 es 這樣的常用服務,以及 guard 這樣的可選工具的情況下。
別怕,有了 tmux,一切都是這么簡單:
試試這個插件吧 -- 叫做 tmuxinator 的一個 ruby gem。 跟著 README 操作一下吧,非常容易入門的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,237評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,957評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,248評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,356評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,081評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,485評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,534評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,720評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,263評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,025評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,204評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,787評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,461評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,874評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,105評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,945評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,205評論 2 375

推薦閱讀更多精彩內容