📘 tmux 使用速查笔记
✅ tmux 运行在Linux 服务器,Xshell 只是终端
✅ 默认前缀键Prefix =Ctrl+b(按下松开再按功能键)
一、安装 & 配置
安装
# Ubuntu / Debiansudoaptinstalltmux# CentOS / RHELsudoyuminstalltmux配置文件(~/.tmux.conf)
vim~/.tmux.conf# ~/.tmux.conf(推荐完整版) # 基础设置 set -g mouse on set -g default-terminal "screen-256color" set -g base-index 1 setw -g pane-base-index 1 set -sg escape-time 10 # 状态栏样式 set -g status-style 'bg=colour235 fg=colour136' set -g window-status-current-style 'bold fg=colour166' set -g status-right '#[fg=colour166] %Y-%m-%d %H:%M ' # 复制模式使用 vi 键位 setw -g mode-keys vi bind -T copy-mode-vi v send -X begin-selection bind -T copy-mode-vi y send -X copy-selection-and-cancel # 允许通过系统剪贴板(需终端支持 OSC 52) set -g set-clipboard on # 窗口名称自动重命名(根据当前程序) setw -g automatic-rename on # 绑定 r 重载配置 bind r source-file ~/.tmux.conf \; display-message "Config reloaded!"重载配置:
tmux source-file ~/.tmux.conf二、Session(会话)
命令行操作(在普通 Shell 执行)
tmux new-sdev# 新建会话 devtmuxls# 列出会话tmux attach-tdev# 重新连接 devtmux detach# 离开当前会话(同 Prefix d)tmux kill-session-tdev# 杀死会话tmux rename-session-tdev prod# 重命名tmux kill-server# 关闭所有会话⚠tmux ls报failed to connect to server→ 当前无会话在运行(正常)
快捷键(在 tmux 内部)
| 功能 | 快捷键 |
|---|---|
| Detach(离开会话,任务保留) | Prefix d |
| 切换 Session(列表选择) | Prefix s |
三、Window(窗口,类似浏览器标签)
| 功能 | 快捷键 |
|---|---|
| 新建窗口 | Prefix c |
| 下一窗口 | Prefix n |
| 上一窗口 | Prefix p |
| 按编号切换 | Prefix 0–9 |
| 重命名窗口 | Prefix , |
| 切换 Window(列表) | Prefix w |
| 关闭窗口 | Ctrl+d/exit |
四、Pane(面板,窗口内分屏)
| 功能 | 快捷键 |
|---|---|
| 水平拆分(上下) | Prefix " |
| 垂直拆分(左右) | Prefix % |
| 切换面板 | Prefix ↑ ↓ ← → |
| 显示 Pane 编号(按数字跳转) | Prefix q |
| 把当前 Pane 拆成独立 Window | Prefix ! |
| 关闭面板 | Ctrl+d |
| 面板全屏/取消全屏 | Prefix z |
| 自动排列布局 | Prefix Space |
| 调整大小(按住 Prefix) | Prefix+Ctrl+↑↓←→ |
| 等分布局 | Prefix+Alt+1~5 |
| 鼠标选面板 / 滚轮(需 mouse on) | 点击 / 滚轮 |
五、复制模式 / 滚动历史
| 功能 | 快捷键(vi 模式) |
|---|---|
| 进入复制/滚动模式 | Prefix [ |
| 开始选择 | Space(空格) |
| 确认复制 | Enter |
| 粘贴 | Prefix ] |
| 搜索(向下) | / |
| 搜索(向上) | ? |
| 翻页 | PageUp / PageDown |
| 退出 | q/Esc |
⚠️ 默认是 emacs 模式(
Ctrl+Space开始、Alt+w复制)。建议统一配成 vi 模式(见配置文件)。
💡 开启mouse on后可直接滚轮查看历史,但复制仍需进入复制模式。
六、命令模式(Prefix :)
进入命令模式后输入 tmux 命令:
| 操作 | 命令 |
|---|---|
| 进入命令模式 | Prefix : |
| 多 pane 同步输入(开/关) | setw synchronize-panes |
| 重命名当前窗口 | rename-window xxx |
| 重命名当前会话 | rename-session xxx |
| 关闭当前窗口 | kill-window |
| 关闭当前 pane | kill-pane |
七、常用 Shell 命令(在 pane 内)
exit# 关闭当前 pane/window/sessionCtrl+d# 同上tmux detach# 等同 Prefix d八、典型工作流(Xshell)
# 1. Xshell 登录服务器tmux new-sdev# 2. 写代码 / 启服务 / 看日志# 3. Ctrl+b d 离开(可关 Xshell)# 4. 下次登录tmux attach-tdev九、Xshell 剪贴板互通
在 Xshell 里用 tmux 复制,内容不会自动进入 Windows 剪贴板。常用策略:
| 场景 | 方案 |
|---|---|
| 少量文本 | 按住Shift+ 鼠标左键拖拽(绕过 tmux,直接走 Xshell 选择) |
| 大量文本/日志 | 用 tmux 复制模式Prefix [选中文本,再cat输出到文件后用scp下载 |
| 开启 OSC 52 | 若终端支持(Xshell 部分版本支持),可配置set -g set-clipboard on |
💡最省心做法:Xshell 里
Shift+鼠标选择 = 走终端自带复制,不进 tmux 模式。
十、新手易错点
| 问题 | 说明 |
|---|---|
Ctrl+b d没反应 | 未按对(要先松 Ctrl+b 再按 d)或 Xshell 占用 Ctrl+B |
tmux ls报错 | 没会话在运行,先tmux new -s xxx |
| 关 Xshell 程序死吗 | 不死(detach 后) |
| 服务器重启 | tmux 会话会丢失(正常) |
| 多项目 | 一个 tmux session = 一个项目 |
| 复制后无法粘贴 | 未进入复制模式选中文本,或终端不支持 OSC 52 |
十一、可选:把前缀改为 Ctrl+a(更好按)
# ~/.tmux.confunbind C-bset-gprefix C-abindC-a send-prefix十二、🆘 最小可用速查(贴桌边)
新建会话 tmux new -s x 离开 Prefix d 重连 tmux attach -t x 分屏横 Prefix " 分屏竖 Prefix % 切换面板 Prefix ↑↓←→ 全屏 Prefix z 复制 Prefix [ → Space选 → Enter → Prefix ]粘贴 粘贴 Prefix ] 同步输入 Prefix : → setw synchronize-panes 关闭 Ctrl+d🔚 一句话记忆
tmux 保活任务,Xshell 只是窗口;Prefix = Ctrl+b(松手再按);离开用
Ctrl+b d(或tmux detach);复制用Prefix [选、Enter存、Prefix ]贴。