Tmux的安装与使用

Tmux基本概念

  Tmux(Terminal Multiplexer)是一款终端复用工具,它可以在单个终端下同时运行多个会话。Tmux最初是为了解决在SSH连接或远程终端会话中,由于网络问题或客户端突然断开连接等原因,导致会话中的程序无法运行而诞生的。随着时间的推移,Tmux的功能越来越丰富,成为一款非常实用的终端工具。
  以下是Tmux的主要特点:
  1.多窗口:Tmux支持在一个终端窗口中分割多个窗口和面板,可以自定义每个窗口的大小和布局,同时也支持快捷键切换窗口。
  2.独立会话:Tmux创建独立会话,每个会话都可以拥有多个窗口或面板,并且彼此之间互不干扰。
  3.支持远程访问:通过Tmux,可以在一个终端会话中访问远程服务器上的程序,而无需打开多个终端窗口。
  4.自动重连:当你的SSH会话意外断开时,Tmux可以帮你自动重新连接,从而避免断开会话导致的数据丢失问题。
  Tmux的主要元素分为三层:

  • 会话(session):Tmux的会话表示一组窗口和面板的集合,是Tmux最高层次的抽象。在Tmux中,你可以创建多个会话,每个会话都拥有自己的窗口和面板,你可以在会话之间自由切换。
  • 窗口(window):在Tmux中,一个会话可以包含多个窗口,每个窗口是一个独立的终端。在一个终端内,如果你需要同时运行多个程序,或者在不同程序之间来回切换,那么可以通过创建多个窗口来实现。
  • 面板(pane):在Tmux中,一个窗口可以被分成若干个面板,每个面板是一个独立的终端。在一个终端内,如果你需要同时运行多个程序,并且希望能够同时看到它们的执行结果,那么可以通过创建多个面板来实现。

  下图展示了这三个核心概念之间的关系,图片引自咕咕:Tmux使用记录

Tmux的安装

  在 Linux 操作系统中,你可以使用系统自身的包管理工具来安装 Tmux。不同的系统中包管理工具的名称和命令略有不同:
  在Ubuntu或Debin系统中,可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install tmux

  在Fedora或CentOS系统中,可以使用以下命令进行安装:

sudo yum install tmux

  在Arch或Manjaro系统中,可以使用以下命令进行安装:

sudo pacman -S tmux

  在Mac OS X系统中,可以使用以下命令进行安装:

brew update 
brew install tmux

Tmux常用命令

会话相关的命令

  • tmux new [-s session-name]:创建一个新会话,其中 -s 可以指定会话的名称,如果没有指定会话名称,则会话名称为递增的编号。
  • tmux attach [-t session-name]:重新连接到已经存在的会话,其中 -t 参数指定会话名称。
  • tmux detach:分离当前会话。
  • tmux switch [-t session-name]:在多个会话之间切换,其中 -t 参数指定会话名称。
  • tmux list-sessions:列出所有会话,包括会话名称、会话 ID 和会话状态。
  • tmux kill-session [-t session-name]:关闭指定的会话,其中 -t 参数指定会话名称。
  • tmux suspend-client:暂停客户端连接到会话,需要在会话中使用 Ctrl-b 激活 Tmux 命令行界面,然后输入 :suspend-client。
  • tmux list-clients:列出与会话关联的所有客户端连接,并显示客户端 ID 和会话名称。

窗口相关的命令

  • tmux new-window [-n window-name]:在当前会话中创建一个新窗口。其中 -n 可以指定新窗口的名称。
  • tmux select-window -t window-name:切换到指定名称的窗口,其中 -t 参数指定窗口名称或编号。
  • tmux list-windows:列出当前会话中所有窗口,包括窗口名称、窗口编号和窗口状态。
  • tmux rename-window [-t window-name] new-name:重命名指定名称的窗口,其中 -t 参数指定窗口名称或编号。
  • tmux move-window [-s src-win] [-t dst-win]:将一个窗口移动到另外一个窗口的前面或后面。其中 -s 和 -t 参数分别指定源窗口和目标窗口。
  • tmux swap-window -s src-win -t dst-win:交换两个窗口的位置,其中 -s 和 -t 参数分别指定要交换的两个窗口。
  • tmux kill-window [-t window-name]:关闭指定名称的窗口,其中 -t 参数指定窗口名称或编号。

面板相关的命令

  • tmux split-window [-h] [-v] [-p percentage]:将当前面板水平或垂直分隔成两个新面板。其中 -h 和 -v 分别表示水平和垂直拆分面板,-p 参数可指定新面板的大小百分比。
  • tmux select-pane -U/D/L/R:在多个面板之间切换。其中 -U、-D、-L 和 -R 分别表示向上、向下、向左和向右切换面板。
  • tmux swap-pane -[UDLR]:交换当前和指定方向上的另一个面板。其中 -U、-D、-L 和 -R 分别表示与当前面板上下左右相邻的面板。
  • tmux resize-pane -[UDLR] (N):调整当前面板的大小。其中 -U、-D、-L 和 -R 分别表示在上、下、左和右方向上调整面板大小,并在括号内指定调整的行数(对于 -U 和 -D 选项)或列数(对于 -L 和 -R 选项)。
  • tmux kill-pane:关闭当前面板。
  • tmux select-pane -t pane:window.pane:选择指定的面板。其中 pane 表示面板编号,window 表示窗口编号。

Tmux常用快捷键

  Tmux 拥有丰富的快捷键,这些快捷键可以帮助你快速地进行各种操作,提高你的终端使用效率。下面是一些常用的 Tmux 快捷键:

  • Ctrl+b:激活快捷键模式。在快捷键模式下,你可以输入其他的快捷键命令;
  • Ctrl+b ?:列出所有的快捷键命令;
  • Ctrl+b c:创建一个新的窗口;
  • Ctrl+b %:在当前窗口中水平拆分面板;
  • Ctrl+b ":在当前窗口中垂直拆分面板;
  • Ctrl+b 方向键:在当前窗口中移动焦点到指定的面板中;
  • Ctrl+b z:最大化当前面板,再次按下则取消最大化操作;
  • Ctrl+b n:在窗口列表中切换到下一个窗口;
  • Ctrl+b p:在窗口列表中切换到上一个窗口;
  • Ctrl+b 数字键:切换到指定编号的窗口;
  • Ctrl+b x:关闭当前面板或窗口;
  • Ctrl+b d:将当前会话分离,以便在后台继续使用,可以再次使用 tmux attach 命令重新连接到会话中;
  • Ctrl+b ::进入命令行模式,可以输入一些 Tmux 命令,如重命名窗口、重排面板等。

当珍惜每一片时光~