前言
在使用 Ubuntu 服务器进行远程开发或运维时,常见问题包括:
- SSH 断开导致正在运行的任务中止
- 同一服务器需要同时操作多个终端
- 终端窗口频繁切换,效率较低
tmux(Terminal Multiplexer) 可以在一个 SSH 会话中创建多个终端环境,并保证即使 SSH 断开,任务仍然继续运行。
一、什么是 tmux
tmux 是一个终端复用工具,核心由三个概念组成:
- 会话(Session):长期运行的终端集合
- 窗口(Window):会话中的独立终端标签
- 面板(Pane):窗口中的终端分割区域
适用于远程开发、运维值守及长时间运行任务。
二、在 Ubuntu 22.04 上安装 tmux
1. 更新系统包
sudo apt update
2. 安装 tmux
sudo apt install -y tmux
3. 验证安装
tmux -V
输出示例:
tmux 3.2a
三、tmux 的快捷键机制(Prefix)
1. 什么是 Prefix
tmux 的快捷键采用前缀机制:
- 先按下 Prefix(前缀键)
- 再按下对应功能键
该机制用于避免 tmux 快捷键与 Shell 或程序快捷键冲突。
2. 默认 Prefix 键
tmux 的默认 Prefix 为:
Ctrl + b(macOS:Control + b)
后文中使用 Prefix 表示该组合键。
3. 按键说明(macOS / Linux)
tmux 使用的是服务器端的按键逻辑,不依赖本地操作系统。
| 说明 | 含义 |
|---|---|
Ctrl | Control 键 |
Alt | macOS 键盘上的 Option 键 |
4. 快捷键按下方式说明
以 Prefix + c 为例,实际按键顺序为:
Ctrl + b → 松开 → c
并非同时按下。
四、tmux 基本使用
1. 创建会话
tmux
或指定名称:
tmux new -s mysession
2. 会话操作
| 操作 | 快捷键 / 命令 |
|---|---|
| 查看会话 | tmux ls |
| 断开会话(保持运行) | Prefix + d |
| 进入会话 | tmux attach -t mysession |
| 关闭会话 | exit |
3. 窗口(Window)操作
| 操作 | 快捷键 |
|---|---|
| 新建窗口 | Prefix + c |
| 下一个窗口 | Prefix + n |
| 上一个窗口 | Prefix + p |
| 切换窗口 | Prefix + 数字 |
| 重命名窗口 | Prefix + , |
| 关闭窗口 | exit |
4. 面板(Pane)操作
分割面板
- 左右分割
Prefix + %
- 上下分割
Prefix + "
面板切换
Prefix + 方向键
调整大小
Prefix + Ctrl + 方向键
关闭面板
exit
五、使用场景示例
场景:SSH 断线不中断任务
tmux new -s train
python train.py
断开连接:
Prefix + d
重新连接后:
tmux attach -t train
任务仍然继续运行。
总结
tmux 是 Ubuntu 服务器环境中稳定、成熟的终端管理工具:
- 避免 SSH 断线带来的任务中断
- 提供多窗口、多面板的终端管理能力
- macOS 与 Linux 使用方式一致
熟练掌握 tmux 能显著提升远程终端操作效率。