Tmux使用介紹

INnoVation-V2發表於2024-09-01

Tmux使用介紹

Tmux是一個終端複用器(terminal multiplexer)。如果您有使用screen的經歷的話,您可以理解為Tmux是screen的不同實現軟體。本教程將講解Tmux的基礎用法。

會話與程序

命令列的典型用法是開啟終端(terminal)後,在裡面輸入指令。使用者的這種與計算機互動的手段,稱為會話(session)。

在會話中,透過命令列啟動的所有程序均與會話程序繫結。當會話程序終止時,該會話啟動的所有程序也會隨之強行結束。

一點最常見的例子就是透過SSH連線到遠端計算機。當SSH連線因為網路等原因斷開時,那麼SSH會話就被終止,這次會話啟動的任務也會被強制結束。

為了解決這個問題,一種手段就是使用者終端視窗與會話“解綁”。即關閉使用者端視窗,仍然維持該會話,進而保證使用者程序不變。

Tmux的作用

Tmux就是這樣一款會話與視窗的“解綁”工具。

(1)它允許在單個視窗中,同時訪問多個會話。這對於同時執行多個命令列程式很有用。

(2)它可以讓新視窗"接入"已經存在的會話。

(3)它允許每個會話有多個連線視窗,因此可以多人實時共享會話。

(4)它還支援視窗任意的垂直和水平拆分

基本用法

安裝

叢集中已經預設安裝了Tmux,無須操作。如果您需要在自己的伺服器上安裝Tmux,請參考以下指令:

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

# Mac
$ brew install tmux

啟動與退出

直接在終端中鍵入tmux指令,即可進入Tmux視窗。

$ tmux

上面命令會啟動 Tmux 視窗,底部有一個狀態列。狀態列的左側是視窗資訊(編號和名稱),右側是系統資訊。

../_images/tmux_1.png

按下Ctrl+d或者顯式輸入exit命令,就可以退出 Tmux 視窗。

$ exit

快捷鍵

Tmux有大量的快捷鍵。所有的快捷鍵都要使用Ctrl+b作為字首喚醒。我們將會在後續章節中講解快捷鍵的具體使用。

會話管理

新建會話

第一個啟動的會話名為0,之後是12一次類推。

但是有時候我們希望為會話起名以方便區分。

$ tmux new -s SESSION_NAME

以上指令啟動了一個名為SESSION_NAME的會話。

分離會話

如果我們想離開會話,但又不想關閉會話,有兩種方式。按下Ctrl+b d或者tmux detach指令,將會分離會話與視窗

$ tmux detach

後面一種方法要求當前會話無正在執行的程序,即保證終端可操作。我們更推薦使用前者。

檢視會話

要檢視當前已有會話,使用tmux ls指令。

$ tmux ls

接入會話

tmux attach命令用於重新接入某個已存在的會話。

# 使用會話編號
$ tmux attach -t 0

# 使用會話名稱
$ tmux attach -t SESSION_NAME

殺死會話

tmux kill-session命令用於殺死某個會話。

# 使用會話編號
$ tmux kill-session -t 0

# 使用會話名稱
$ tmux kill-session -t SESSION_NAME

切換會話

tmux switch命令用於切換會話。

# 使用會話編號
$ tmux switch -t 0

# 使用會話名稱
$ tmux switch -t SESSION_NAME

Ctrl+b s可以快捷地檢視並切換會話

重新命名會話

tmux rename-session命令用於重新命名會話。

# 將0號會話重新命名為SESSION_NAME
$ tmux rename-session -t 0 SESSION_NAME

對應快捷鍵為Ctrl+b $

窗格(window)操作

Tmux可以將視窗分成多個窗格(window),每個窗格執行不同的命令。以下命令都是在Tmux視窗中執行。

劃分窗格

tmux split-window命令用來劃分窗格。

# 劃分上下兩個窗格
$ tmux split-window

# 劃分左右兩個窗格
$ tmux split-window -h

../_images/tmux_2.png

對應快捷鍵為Ctrl+b "Ctrl+b %

移動游標

tmux select-pane命令用來移動游標位置。

# 游標切換到上方窗格
$ tmux select-pane -U

# 游標切換到下方窗格
$ tmux select-pane -D

# 游標切換到左邊窗格
$ tmux select-pane -L

# 游標切換到右邊窗格
$ tmux select-pane -R

對應快捷鍵為Ctrl+b ↑Ctrl+b ↓Ctrl+b ←Ctrl+b →

窗格快捷鍵

$ Ctrl+b %:劃分左右兩個窗格。
$ Ctrl+b ":劃分上下兩個窗格。
$ Ctrl+b <arrow key>:游標切換到其他窗格。<arrow key>是指向要切換到的窗格的方向鍵,比如切換到下方窗格,就按方向鍵↓。
$ Ctrl+b ;:游標切換到上一個窗格。
$ Ctrl+b o:游標切換到下一個窗格。
$ Ctrl+b {:當前窗格左移。
$ Ctrl+b }:當前窗格右移。
$ Ctrl+b Ctrl+o:當前窗格上移。
$ Ctrl+b Alt+o:當前窗格下移。
$ Ctrl+b x:關閉當前窗格。
$ Ctrl+b !:將當前窗格拆分為一個獨立視窗。
$ Ctrl+b z:當前窗格全屏顯示,再使用一次會變回原來大小。
$ Ctrl+b Ctrl+<arrow key>:按箭頭方向調整窗格大小。
$ Ctrl+b q:顯示窗格編號。

原文地址