Linux 中的 tmux 是一个强大的终端复用器,允许用户在一个终端窗口中创建和管理多个会话,每个会话可以包含多个窗口,每个窗口又可以分割成多个面板,这种结构使得开发者、系统管理员等需要同时处理多个任务的用户能够高效地管理终端操作,无需频繁切换窗口或重新启动进程,tmux 的核心优势在于其会话持久性,即使用户关闭终端,会话依然可以在后台运行,随时可以重新连接。

tmux 的基本架构由三部分组成:服务器(server)、会话(session)和客户端(client),服务器是 tmux 的核心,负责管理所有会话和客户端;会话是一个独立的工作环境,包含多个窗口;客户端则是用户与 tmux 交互的终端界面,用户通过 tmux
命令启动服务器,并自动创建一个默认会话,以下是 tmux 的常用命令分类及详细说明:
会话管理命令
会话是 tmux 的顶层容器,以下命令用于创建、管理和切换会话:
tmux new -s session_name
:创建一个名为session_name
的新会话。tmux attach -t session_name
:附加到指定的会话。tmux switch -t session_name
:切换到指定的会话。tmux list-sessions
或tmux ls
:列出所有会话。tmux kill-session -t session_name
:杀死指定的会话。tmux detach
:从当前会话分离。
创建一个名为 work
的会话并附加:tmux new -s work
,如果需要在分离后重新连接,只需运行 tmux attach -t work
。
窗口管理命令
每个会话可以包含多个窗口,类似于浏览器标签页:

Ctrl+d
或输入exit
:关闭当前窗口(如果所有面板都已关闭,则退出会话)。tmux new-window -n window_name
:创建一个新窗口并命名。Ctrl+b
然后按c
:快速创建新窗口(默认无名称)。Ctrl+b
然后按0-9
:切换到指定编号的窗口。Ctrl+b
然后按p
/n
:切换到上一个/下一个窗口。Ctrl+b
然后按&
:关闭当前窗口。tmux rename-window -n new_name
:重命名当前窗口。
在会话中创建一个名为 code
的窗口:Ctrl+b
followed by ,输入 rename-window code
。
面板管理命令
面板是窗口内的分割区域,支持水平和垂直分割:
Ctrl+b
然后按 :垂直分割当前窗口(左右两个面板)。Ctrl+b
然后按 :水平分割当前窗口(上下两个面板)。Ctrl+b
然后按方向键
:在面板之间切换焦点。Ctrl+b
然后按x
:关闭当前面板。Ctrl+b
然后按 :将当前面板提升为新窗口。Ctrl+b
然后按空格键
:循环切换面板布局。
垂直分割窗口后,可以使用 Ctrl+b
followed by 方向键
在左右面板间切换。
其他实用命令
Ctrl+b
然后按d
:分离当前会话。Ctrl+b
然后按t
:显示时钟。Ctrl+b
然后按 :显示快捷键帮助。tmux source-file ~/.tmux.conf
:重新加载 tmux 配置文件(通常用于自定义快捷键)。
tmux 的配置文件位于 ~/.tmux.conf
,用户可以通过修改该文件自定义快捷键、颜色主题等,将默认前缀键从 Ctrl+b
改为 Ctrl+a
,可在配置文件中添加 set -g prefix C-a
。

tmux 命令速查表
功能类别 | 命令或快捷键 | 说明 |
---|---|---|
创建会话 | tmux new -s name |
创建命名会话 |
附加会话 | tmux attach -t name |
连接到指定会话 |
列出会话 | tmux ls |
显示所有会话 |
创建窗口 | Ctrl+b then c |
新建默认窗口 |
重命名窗口 | Ctrl+b then then rename ... |
重命名当前窗口 |
垂直分割面板 | Ctrl+b then |
左右分割面板 |
水平分割面板 | Ctrl+b then |
上下分割面板 |
切换面板 | Ctrl+b then 方向键 |
在面板间移动焦点 |
分离会话 | Ctrl+b then d |
分离当前会话 |
通过掌握以上命令,用户可以充分利用 tmux 提升终端工作效率,无论是同时运行多个命令、保持长时间运行的进程,还是在远程服务器上管理任务,tmux 都能提供极大的便利。
相关问答 FAQs
Q1: 如何在 tmux 中复制文本?
A: tmux 的复制模式需要手动启用,步骤如下:
- 按
Ctrl+b
进入复制模式。 - 使用方向键或
v
(字符选择)或V
(行选择)选择文本。 - 按
Enter
复制选中的文本。 - 在外部终端中按
Ctrl+Shift+v
(Linux)或Cmd+v
(Mac)粘贴。
注意:需确保系统剪贴板工具(如xclip
)已安装,并在~/.tmux.conf
中配置set -g set-clipboard on
。
Q2: tmux 和 screen 有什么区别?
A: tmux 和 screen 都是终端复用器,但 tmux 提供更现代的功能:
- 架构:tmux 采用客户端-服务器模型,支持嵌套会话;screen 架构较简单。
- 面板分割:tmux 原生支持水平和垂直面板分割;screen 需通过插件实现。
- 配置:tmux 配置文件语法更直观,支持自定义快捷键和颜色主题。
- 社区支持:tmux 活跃度更高,插件和教程更丰富。
对于大多数用户,tmux 是更优选择。