Vibe Coding时代我们需要多终端管理,Tmux必不可少
Tmux 快速使用入门
│ Tmux(Terminal Multiplexer)是一个终端复用器,可以在一个终端窗口中管理多个会话、窗口和面板,断开后进程继续运行,重连即可恢复工作现场。
────────────────────
一、核心概念
Tmux 有三层结构,从大到小依次为:
Session(会话)
└── Window(窗口)
└── Pane(面板)
概念 │ 说明 │ 类比
─────────────────┼──────────────────────────────────────────┼────────────────────
Session(会话) │ 一个独立的 tmux 工作环境,可包含多个窗口 │ 浏览器的一个窗口
─────────────────┼──────────────────────────────────────────┼────────────────────
Window(窗口) │ 会话中的全屏终端,可包含多个面板 │ 浏览器的一个标签页
─────────────────┼──────────────────────────────────────────┼────────────────────
Pane(面板) │ 窗口中被分割出的一个区域 │ 标签页中的分屏
│ 关键优势:SSH 断开后,tmux 中的进程不会终止,重新连接即可恢复全部工作现场。
────────────────────
二、安装方式(仅供参考)
# Ubuntu / Debian
sudo apt install tmux
# CentOS / RHEL
sudo yum install tmux
# macOS(Homebrew)
brew install tmux
# Arch Linux
sudo pacman -S tmux
────────────────────
三、会话管理
3.1 创建会话
tmux # 创建匿名会话
tmux new -s mysession # 创建名为 mysession 的会话
3.2 脱离会话(Detach)
在 tmux 内部按下:
Ctrl + b 然后按 d
│ 脱离后会话仍在后台运行,所有进程继续执行。
3.3 查看会话列表
tmux ls
输出示例:
mysession: 1 windows (created Mon Jan 1 10:00:00 2024)
other: 2 windows (created Mon Jan 1 11:00:00 2024)
3.4 重新连接会话(Attach)
tmux attach -t mysession # 连接到指定会话
tmux a -t mysession # 简写形式
tmux a # 连接最近一个会话
3.5 关闭会话
tmux kill-session -t mysession # 关闭指定会话
tmux kill-server # 关闭所有会话
在会话内部关闭:
Prefix 然后按 : 输入 kill-session
────────────────────
四、前缀键说明
Tmux 的所有快捷键都需要先按 前缀键(Prefix),默认为:
Ctrl + b
│ 下文中用 Prefix 代表 Ctrl + b。按下前缀键后松开,再按下一个功能键。
────────────────────
五、窗口管理
操作 │ 快捷键 │ 说明
──────────────────┼─────────────┼─────────────────────────────
创建新窗口 │ Prefix c │ 在当前会话中新建窗口
──────────────────┼─────────────┼─────────────────────────────
切换到下一个窗口 │ Prefix n │ next
──────────────────┼─────────────┼─────────────────────────────
切换到上一个窗口 │ Prefix p │ previous
──────────────────┼─────────────┼─────────────────────────────
按编号切换窗口 │ Prefix 数字 │ 如 Prefix 2 切换到 2 号窗口
──────────────────┼─────────────┼─────────────────────────────
列出所有窗口 │ Prefix w │ 可用方向键选择
──────────────────┼─────────────┼─────────────────────────────
重命名当前窗口 │ Prefix , │ 输入新名称后回车
──────────────────┼─────────────┼─────────────────────────────
关闭当前窗口 │ Prefix & │ 确认后按 y
──────────────────┼─────────────┼─────────────────────────────
查找窗口 │ Prefix f │ 按名称或编号查找
────────────────────
六、面板管理(分屏)
6.1 分屏操作
操作 │ 快捷键 │ 说明
────────────────┼──────────┼──────────────────────────
左右分屏 │ Prefix % │ 垂直分割线,左右两个面板
────────────────┼──────────┼──────────────────────────
上下分屏 │ Prefix " │ 水平分割线,上下两个面板
────────────────┼──────────┼──────────────────────────
关闭当前面板 │ Prefix x │ 确认后按 y
────────────────┼──────────┼──────────────────────────
将面板转为窗口 │ Prefix ! │ 当前面板独立为一个新窗口
6.2 面板导航
操作 │ 快捷键 │ 说明
────────────────┼──────────┼──────────────────────────────
切换到上方面板 │ Prefix ↑ │ 方向键上
────────────────┼──────────┼──────────────────────────────
切换到下方面板 │ Prefix ↓ │ 方向键下
────────────────┼──────────┼──────────────────────────────
切换到左方面板 │ Prefix ← │ 方向键左
────────────────┼──────────┼──────────────────────────────
切换到右方面板 │ Prefix → │ 方向键右
────────────────┼──────────┼──────────────────────────────
依次切换面板 │ Prefix o │ 按顺序轮换
────────────────┼──────────┼──────────────────────────────
显示面板编号 │ Prefix q │ 面板上显示数字,按数字可切换
6.3 调整面板大小
先按 Prefix,然后按住不放再按方向键调整:
Prefix(按住)+ ↑ / ↓ / ← / →
或者使用调整模式:
Prefix 然后按 Ctrl + 方向键
6.4 面板布局
操作 │ 快捷键 │ 说明
──────────────┼──────────────┼──────────────────────────────────
切换预设布局 │ Prefix Space │ 在多种布局间循环切换
──────────────┼──────────────┼──────────────────────────────────
交换面板位置 │ Prefix { │ 当前面板与前一个交换
──────────────┼──────────────┼──────────────────────────────────
交换面板位置 │ Prefix } │ 当前面板与后一个交换
──────────────┼──────────────┼──────────────────────────────────
面板全屏切换 │ Prefix z │ 当前面板全屏/恢复(zoom toggle)
────────────────────
七、复制模式(Copy Mode)
7.1 进入复制模式
Prefix [
进入后可以使用方向键、Page Up、Page Down 浏览历史输出。
7.2 复制操作(默认 Emacs 模式)
操作 │ 按键 │ 说明
──────────────┼────────┼────────────────────
开始选择 │ Space │ 进入选择模式
──────────────┼────────┼────────────────────
选择文本 │ 方向键 │ 移动光标选择内容
──────────────┼────────┼────────────────────
复制选中内容 │ Enter │ 复制到 tmux 缓冲区
──────────────┼────────┼────────────────────
取消选择 │ Esc │ 退出复制模式
7.3 粘贴
Prefix ]
7.4 翻页浏览
在复制模式下:
操作 │ 按键
──────────────┼─────────────────────────
向上翻页 │ Ctrl + u 或 Page Up
──────────────┼─────────────────────────
向下翻页 │ Ctrl + d 或 Page Down
──────────────┼─────────────────────────
跳到顶部 │ g
──────────────┼─────────────────────────
跳到底部 │ G
──────────────┼─────────────────────────
搜索(向下) │ Ctrl + s 然后输入关键词
──────────────┼─────────────────────────
搜索(向上) │ Ctrl + r 然后输入关键词
────────────────────
八、其他常用操作
操作 │ 快捷键 / 命令 │ 说明
────────────────┼────────────────────┼────────────────────────────────────
显示时间 │ Prefix t │ 面板中央显示大时钟,按任意键退出
────────────────┼────────────────────┼────────────────────────────────────
命令模式 │ Prefix : │ 输入 tmux 命令
────────────────┼────────────────────┼────────────────────────────────────
刷新配置 │ Prefix r(需配置) │ 重新加载 ~/.tmux.conf
────────────────┼────────────────────┼────────────────────────────────────
查看快捷键列表 │ Prefix ? │ 显示所有绑定的快捷键
────────────────┼────────────────────┼────────────────────────────────────
暂停 tmux │ Prefix Ctrl + z │ 暂停 tmux 回到 shell,输入 fg 恢复
────────────────┼────────────────────┼────────────────────────────────────
鼠标支持 │ Prefix m(需配置) │ 开启鼠标切换面板/调整大小
────────────────────
九、配置文件示例
创建 ~/.tmux.conf:
# ============================================
# Tmux 基础配置
# ============================================
# 修改前缀键为 Ctrl + a(更顺手)
unbind C-b
set -g prefix C-a
# 启用鼠标支持(可点击切换面板、拖拽调整大小、滚轮翻页)
set -g mouse on
# 基础索引从 1 开始(默认是 0)
set -g base-index 1
setw -g pane-base-index 1
# 自动重新加载配置文件
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
# 更直观的分屏快捷键
bind | split-window -h # Prefix | 左右分屏
bind - split-window -v # Prefix - 上下分屏
# 使用 Alt + 方向键切换面板(无需前缀键)
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# 启用 vi 模式的复制操作
setw -g mode-keys vi
# 状态栏样式
set -g status-style 'bg=black fg=white'
set -g status-left '[#S] |' # 显示会话名
set -g status-right '#[fg=yellow]%Y-%m-%d %H:%M ' # 显示时间
# 窗口列表样式
setw -g window-status-current-style 'fg=black bg=green bold'
# 终端支持 256 色和 true color
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# 滚动历史行数
set -g history-limit 10000
│ 修改配置后,在 tmux 内按 Prefix r 即可重新加载(前提是已配置该快捷键)。
────────────────────
十、常用场景速查
场景 1:SSH 远程工作不怕断线
# 1. SSH 连上服务器后创建会话
tmux new -s work
# 2. 在会话中正常工作(编译、运行服务等)
# 3. 断开 SSH(或网络中断),会话继续运行
# 4. 重新 SSH 连接,恢复工作现场
tmux a -t work
场景 2:一边看日志一边写代码
tmux new -s dev
# Prefix % → 左右分屏
# 左边写代码,右边运行 tail -f app.log
场景 3:同时监控多个服务
tmux new -s monitor
# Prefix " → 上下分屏
# Prefix % → 再左右分屏
# 三个面板分别监控不同服务
────────────────────
十一、快捷键速查表
┌──────────────────────────────────────────────────────┐
│ Tmux 快捷键速查表 │
│ Prefix = Ctrl + b(默认) │
├──────────────────────────────────────────────────────┤
│ 会话 │
│ d 脱离会话 │
│ s 列出会话并选择 │
│ $ 重命名会话 │
│ │
│ 窗口 │
│ c 新建窗口 │
│ n / p 下一个 / 上一个窗口 │
│ 数字 切换到对应编号窗口 │
│ w 窗口列表 │
│ , 重命名窗口 │
│ & 关闭窗口 │
│ │
│ 面板 │
│ % 左右分屏 │
│ " 上下分屏 │
│ 方向键 切换面板 │
│ o 依次切换面板 │
│ x 关闭面板 │
│ z 面板全屏/恢复(toggle) │
│ Space 切换布局 │
│ │
│ 复制模式 │
│ [ 进入复制模式 │
│ ] 粘贴 │
│ │
│ 其他 │
│ ? 查看快捷键 │
│ : 命令模式 │
│ t 显示时钟 │
│ r 重新加载配置(需配置) │
└──────────────────────────────────────────────────────┘
────────────────────
十二、常见问题
Q1:鼠标滚轮无法翻页?
在 ~/.tmux.conf 中添加:
set -g mouse on
或进入复制模式 Prefix [ 后用 Page Up / Page Down 翻页。
Q2:如何复制到系统剪贴板?
Linux(xclip)
# 在 ~/.tmux.conf 中配置
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
macOS(pbcopy)
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'
Q3:修改前缀键后不生效?
确保配置文件中 unbind C-b 在 set -g prefix C-a 之前,并重新加载配置。
Q4:如何让 tmux 启动时自动加载配置?
tmux 启动时会自动读取 ~/.tmux.conf,无需额外操作。如果没有生效,检查文件路径和权限。
────────────────────
总结
日常最常用操作 │ 命令 / 快捷键
────────────────┼──────────────────
新建会话 │ tmux new -s 名称
────────────────┼──────────────────
脱离会话 │ Prefix d
────────────────┼──────────────────
重连会话 │ tmux a -t 名称
────────────────┼──────────────────
左右分屏 │ Prefix %
────────────────┼──────────────────
上下分屏 │ Prefix "
────────────────┼──────────────────
切换面板 │ Prefix 方向键
────────────────┼──────────────────
新建窗口 │ Prefix c
────────────────┼──────────────────
切换窗口 │ Prefix 数字
│ 记住一句话:先按 Ctrl + b,再按功能键,这就是 tmux 的全部操作逻辑。
- 点赞
- 收藏
- 关注作者
评论(0)