博客 / 詳情

返回

Tmux 這是一個什麼樣的寶藏工具?

logo

應用場景

當你使用SSH登錄遠程機器,想新開一個或多個Tab的時候,你需要重新執行SSH登錄。
假設你的SSH不是免密登錄,那麼你每次登錄都需要輸入密碼!
再假設你登錄遠程機器需要通過一台或多台跳板機,那麼新開Tab的成本頓時就增加了很多很多很多...

天吶,誰來救救我啊?
答:Tmux

簡單使用

我們先按順序來簡單的使用一下Tmux,然後再具體的介紹她的一些基本概念和常用快捷鍵等。

怎麼打開Tmux?

tmux              # 新建一個會話,未指定會話名稱
tmux new -s demo  # 新建一個會話,並指定會話名稱為:demo

怎麼退出一個會話?

當你在會話中做一些耗時的操作,想退出但不關閉該會話時,怎麼做呢?

  1. 直接在命令行中輸入:tmux detach
  2. 使用快捷鍵Ctrl+b :,然後輸入detach
  3. 使用快捷鍵Ctrl+b d(推薦)

當你在會話中做一些即時的操作,想退出且關閉該會話時,怎麼做呢?

  1. 直接在命令行中輸入:tmux kill-session
  2. 使用快捷鍵Ctrl+b :,然後輸入kill-session

怎麼查看會話列表?

當你想查看一下,有那些現存的會話,可以通過以下命令來查看

tmux list-sessions  # 列出所有的會話
tmux ls             # 別名

怎麼進入一個現存的會話?

當你想進入一個現存的會話,繼續之前的操作,可以使用tmux attach -t session_name命令,別名tmux a -t session_name

tmux a          # 默認進入第一個會話
tmux a -t demo  # 進入一個名為demo的會話

怎麼在會話中切換到另一個會話?

當你在某個會話中,想直接切換到另一個會話,可以使用tmux switch -t session_name命令

tmux a               # 進入第一個會話
tmux switch -t demo  # 切換到名為demo的會話

基本概念

Tmux中有幾個概念,分別是Session、Window和Pane,它們之間的關係如下圖所示:

在Tmux服務中,有多個Session,一個Session下有多個Window,一個Window下有多個Pane。
在創建一個Session時,會默認創建一個Window,默認創建一個Pane。

常用快捷鍵

系統指令

前綴 指令 描述
Ctrl+b ? 顯示快捷鍵幫助文檔
Ctrl+b d 退出當前會話
Ctrl+b D 選擇退出當前會話
Ctrl+b Ctrl+z 掛起當前會話
Ctrl+b r 強制重載當前會話
Ctrl+b s 顯示會話列表用於選擇並切換
Ctrl+b : 進入命令行模式,此時可直接輸入ls等命令
Ctrl+b [ 進入複製模式,按q退出
Ctrl+b ] 粘貼複製模式中複製的文本
Ctrl+b ~ 列出提示信息緩存

Window指令

前綴 指令 描述
Ctrl+b c 新建窗口
Ctrl+b & 關閉當前窗口(關閉前需輸入y or n確認)
Ctrl+b 0~9 切換到指定窗口
Ctrl+b p 切換到上一窗口
Ctrl+b n 切換到下一窗口
Ctrl+b w 打開窗口列表,用於且切換窗口
Ctrl+b , 重命名當前窗口
Ctrl+b . 修改當前窗口編號(適用於窗口重新排序)
Ctrl+b f 快速定位到窗口(輸入關鍵字匹配窗口名稱)

Pane指令

前綴 指令 描述
Ctrl+b " 當前面板上下一分為二,下側新建面板
Ctrl+b % 當前面板左右一分為二,右側新建面板
Ctrl+b x 關閉當前面板(關閉前需輸入y or n確認)
Ctrl+b z 最大化當前面板,再重複一次按鍵後恢復正常
Ctrl+b ! 將當前面板移動到新的窗口打開(原窗口中存在兩個及以上面板有效)
Ctrl+b ; 切換到最後一次使用的面板
Ctrl+b q 顯示面板編號,在編號消失前輸入對應的數字可切換到相應的面板
Ctrl+b { 向前置換當前面板
Ctrl+b } 向後置換當前面板
Ctrl+b Ctrl+o 順時針旋轉當前窗口中的所有面板
Ctrl+b 方向鍵 移動光標切換面板
Ctrl+b o 選擇下一面板
Ctrl+b 空格鍵 在自帶的面板佈局中循環切換
Ctrl+b Alt+方向鍵 以5個單元格為單位調整當前面板邊緣
Ctrl+b Ctrl+方向鍵 以1個單元格為單位調整當前面板邊緣(Mac下被系統快捷鍵覆蓋)
Ctrl+b t 顯示時鐘

個性化配置

Tmux的配置文件在~/.tmux.conf裏,如果沒有,自行創建即可!

更改前綴快捷鍵

如果你覺得默認的Ctrl+b的前綴快捷鍵不太好用,你可以自行更改為其他快捷鍵。

# 更改前綴快捷鍵為 Ctrl+a
set -g prefix C-a
unbind C-b
bind C-a send-prefix

更改分屏快捷鍵

默認的分屏快捷鍵不太方便記憶,可以將它們改成下面這樣子。

unbind '"'
bind - splitw -v -c '#{pane_current_path}' # 垂直方向新增面板,默認進入當前目錄
unbind %
bind | splitw -h -c '#{pane_current_path}' # 水平方向新增面板,默認進入當前目錄

開啓鼠標支持

默認是不支持鼠標操作的,如果你不是鍵盤控,建議你開啓。
開啓後就可以通過鼠標直接點選Pane以及拖動調整Pane大小等。

set-option -g mouse on # 支持鼠標選取文本等

映射方向鍵

如果你熟悉Vim,那你一定很喜歡hjkl,下面將Tmux的方向鍵映射過來。

# -r表示可重複按鍵,大概500ms內,重複的按鍵都會有效,方便快速移動
bind -r k select-pane -U # 綁定k為上
bind -r j select-pane -D # 綁定j為下
bind -r h select-pane -L # 綁定h為左
bind -r l select-pane -R # 綁定l為右

小結

有了這個寶藏工具,大叔的房子大了,生活好了,生活越來越好了!

example

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.