tmux 快速参考
1. 核心概念
tmux 是终端复用器,在服务器端运行。SSH 断开或本地电脑关机,tmux 内的程序继续运行。
三层结构:会话 Session(顶层容器)包含多个 窗口 Window(类似浏览器标签),每个窗口可分割为多个 窗格 Pane(独立终端区域)。
2. 安装
| 平台 | 安装命令 |
|---|---|
| macOS(Homebrew) | brew install tmux |
| Ubuntu / Debian | sudo apt install -y tmux |
| CentOS / RHEL | sudo yum install -y tmux |
| Alpine Linux | apk add tmux |
3. 会话管理
| 命令 | 作用 |
|---|---|
tmux new -s 名字 | 新建命名会话 |
tmux ls | 列出所有会话 |
tmux a -t 名字 | 接入已有会话 |
tmux new -A -s 名字 | 存在就接入,不存在就新建 |
tmux kill-session -t 名字 | 彻底关闭会话 |
4. 快捷键
前缀键 = Ctrl+a(先按 Ctrl+a,松开,再按下方对应键)
| 快捷键 | 作用 | 快捷键 | 作用 |
|---|---|---|---|
| | 左右分屏 | " | 上下分屏 |
方向键 | 切换窗格 | q | 显示窗格编号 |
c | 新建窗口 | d | 脱离会话(后台运行) |
n / p | 下一 / 上一窗口 | & | 关闭当前窗口 |
数字 1-9 | 切换窗口 | w | 窗口列表选择 |
! | 将窗格拆为新窗口 | z | 当前窗格最大化/恢复 |
x | 关闭当前窗格 | [ | 进入复制模式 |
Ctrl+d | 退出 tmux | ? | 查看全部快捷键 |
5. 远端守护场景
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | ssh user@server | SSH 连上服务器 |
| 2 | tmux new -s work | 创建 tmux 会话 |
| 3 | python train.py | 在会话中运行任务 |
| 4 | Ctrl+a d | 脱离会话(后台运行) |
| 5 | exit | 安全断开 SSH / 关电脑 |
| 6 | ssh user@servertmux a -t work | 下次重新接入 |
6. 窗格管理
| 操作 | 方法 | 说明 |
|---|---|---|
| 切换窗格焦点 | Ctrl+a o | 在窗格间循环切换 |
| 关闭当前窗格 | Ctrl+a x | 会提示确认,按 y |
| 强制关闭窗格 | Ctrl+a :kill-pane | 窗格卡死时直接关闭 |
| 最大化/恢复窗格 | Ctrl+a z | 当前窗格全屏/恢复布局 |
| 远程关闭指定窗格 | tmux kill-pane -t 0:0.2 | 在原生终端执行 |
7. 文字复制
推荐配置:set -g mouse off,保留终端原生鼠标选择能力。
| 方式 | 操作 |
|---|---|
| iTerm2 原生选择(推荐) | 鼠标拖拽选中 → Cmd+c |
| vi 复制模式 | Ctrl+a [ → v 选择 → y 复制 |
| Option+鼠标(备选) | 按住 Option 再拖拽,绕过 tmux 拦截 |
8. 实用技巧
配置重载
修改
~/.tmux.conf 后,按 Ctrl+a : 输入 source-file ~/.tmux.conf 立即生效。长时间任务保险
用
nohup cmd > out.log 2>&1 & 再 disown,防止 tmux 意外关闭时进程被杀。SSH 保活
在
~/.ssh/config 添加 ServerAliveInterval 60,防止空闲断连。多机一致性
将本地
~/.tmux.conf 通过 scp 同步到远端,保持快捷键一致。