Tmux 简单使用

在 Linux 或 Unix 系统的开发和运维工作中,经常会遇到需要同时管理多个终端会话的情况。Tmux(Terminal Multiplexer)是一个强大的终端复用工具,它可以让你在一个终端窗口中创建、管理多个会话、窗口和面板,极大地提高工作效率。本文将详细介绍 Tmux 的基本使用方法,包括安装、常用命令、会话管理、窗口操作、面板分割等内容。

目录#

安装 Tmux#

在 Ubuntu/Debian 上安装#

sudo apt-get update
sudo apt-get install tmux

在 CentOS/RHEL 上安装#

sudo yum install tmux

在 macOS 上安装(使用 Homebrew)#

brew install tmux

Tmux 基本概念#

  • 会话(Session):一个独立的工作环境,可以包含多个窗口。
  • 窗口(Window):类似于传统终端中的一个标签页,每个窗口可以运行不同的程序。
  • 面板(Pane):窗口可以进一步分割成多个面板,每个面板可以独立运行命令。

会话管理#

创建会话#

tmux new -s <session-name>  # 创建一个名为 <session-name> 的新会话

例如:

tmux new -s myproject

列出会话#

tmux ls

连接会话#

tmux attach -t <session-name>  # 连接到名为 <session-name> 的会话

例如:

tmux attach -t myproject

分离会话#

在会话中按下 Ctrl + b (这是 Tmux 的默认前缀键),然后按下 d,即可分离当前会话,会话会在后台继续运行。

重命名会话#

在会话中按下 Ctrl + b,然后按下 $,输入新的会话名称并回车。

窗口操作#

创建窗口#

在会话中按下 Ctrl + b,然后按下 c,会创建一个新窗口。

切换窗口#

  • 按数字键:按下 Ctrl + b,然后按下 0 - 9 中的数字键,切换到对应的窗口(窗口编号从 0 开始)。
  • 使用方向键:按下 Ctrl + b,然后按下 p(上一个窗口)或 n(下一个窗口)。

重命名窗口#

在窗口中按下 Ctrl + b,然后按下 ,,输入新的窗口名称并回车。

关闭窗口#

在窗口中运行 exit 命令,或者按下 Ctrl + b,然后按下 &(需要确认)。

面板分割#

水平分割面板#

在窗口中按下 Ctrl + b,然后按下 ",会水平分割当前窗口为上下两个面板。

垂直分割面板#

在窗口中按下 Ctrl + b,然后按下 %,会垂直分割当前窗口为左右两个面板。

切换面板#

  • 使用方向键:按下 Ctrl + b,然后按下方向键()切换到不同的面板。
  • 按编号:按下 Ctrl + b,然后按下 o 循环切换面板,或者按下 q 显示面板编号,再按下对应的编号切换。

调整面板大小#

  • 按下 Ctrl + b,然后按下 :,输入 resize-pane -U <number>(向上调整 number 行)、resize-pane -D <number>(向下调整 number 行)、resize-pane -L <number>(向左调整 number 列)、resize-pane -R <number>(向右调整 number 列)。
  • 也可以使用鼠标(需要在 Tmux 配置中启用鼠标支持,在 .tmux.conf 中添加 set -g mouse on),直接拖动面板边界调整大小。

关闭面板#

在面板中运行 exit 命令,或者按下 Ctrl + b,然后按下 x(需要确认)。

常用快捷键#

操作快捷键组合(先按 Ctrl + b,再按以下键)
分离会话d
创建窗口c
切换窗口(数字键)0 - 9
上一个窗口p
下一个窗口n
重命名窗口,
关闭窗口&
水平分割面板"
垂直分割面板%
切换面板(方向键)
循环切换面板o
显示面板编号q
调整面板大小(命令行): 后输入调整命令
关闭面板x

最佳实践#

  • 配置 Tmux:创建 ~/.tmux.conf 文件,进行个性化配置。例如:
set -g prefix C-a  # 修改前缀键为 Ctrl + a(默认是 Ctrl + b)
unbind C-b  # 取消默认的 Ctrl + b 前缀键绑定
set -g mouse on  # 启用鼠标支持
set -g status-left-length 20  # 设置状态栏左侧长度
set -g status-right-length 100  # 设置状态栏右侧长度
set -g status-interval 5  # 设置状态栏更新间隔(秒)

然后重新加载配置:tmux source-file ~/.tmux.conf

  • 会话命名规范:给会话、窗口和面板起有意义的名称,方便管理和识别。
  • 定期保存会话:虽然 Tmux 会话在后台运行,但为了防止意外(如系统故障),可以定期使用 tmux save-buffer (保存当前面板内容到缓冲区)和 tmux save-session (保存会话到文件)等命令进行备份。

参考#

通过本文的介绍,你应该能够掌握 Tmux 的基本使用方法,在日常的终端工作中提高效率。Tmux 还有很多高级功能和插件可以进一步探索,以满足更复杂的工作需求。