tmux使用简单记录

.tmux.conf 配置文件如下。

# ============================================================
# tmux 常用配置 - 适合日常开发
# ============================================================

# -------------------- 基础设置 --------------------
# 前缀键改为 Ctrl+a(比默认 Ctrl+b 更顺手)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 启用鼠标支持(滚轮、点击窗格、拖拽调整大小)
set -g mouse on

# 增加滚动历史缓冲区
set -g history-limit 50000

# 减少按键延迟(vim 用户必配)
set -sg escape-time 0

# 让窗口编号从 1 开始
set -g base-index 1
setw -g pane-base-index 1

# 关闭中间窗口后自动重新编号
set -g renumber-windows on

# 支持 256 色和真彩色
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# 系统剪贴板支持(需要 xclip 或 xsel)
# 选中后复制到系统剪贴板
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"
# 鼠标选中后也复制到系统剪贴板
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"

# -------------------- 分屏快捷键 --------------------
# 更直观的分屏快捷键(| 竖分,- 横分,符号和方向一致)
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

# 新建窗口也保持当前路径
bind c new-window -c "#{pane_current_path}"

# -------------------- 窗格导航 --------------------
# Vim 风格窗格切换(无需前缀键)
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Vim 风格调整窗格大小(带前缀键 + H/J/K/L)
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# -------------------- 复制模式 --------------------
# vi 风格的复制模式
setw -g mode-keys vi

# Enter 复制模式
bind Enter copy-mode

# v 开始选择(vim 习惯)
bind-key -T copy-mode-vi v send-keys -X begin-selection

# -------------------- 实用快捷键 --------------------
# 快速重载配置
bind r source-file ~/.tmux.conf \; display-message "tmux config reloaded!"

# 快速交换窗格位置
bind > swap-pane -D
bind < swap-pane -U

# 快速跳转到指定窗口(带前缀键 + 数字)
bind 1 select-window -t :1
bind 2 select-window -t :2
bind 3 select-window -t :3
bind 4 select-window -t :4
bind 5 select-window -t :5
bind 6 select-window -t :6
bind 7 select-window -t :7
bind 8 select-window -t :8
bind 9 select-window -t :9

# 同步输入到所有窗格(批量操作多台服务器时超有用)
bind S setw synchronize-panes

# -------------------- 状态栏美化 --------------------
# 状态栏颜色(Tokyo Night 风格)
set -g status-style "bg=#1a1b26,fg=#a9b1d6"

# 活动窗口高亮
setw -g window-status-current-style "bg=#7aa2f7,fg=#1a1b26,bold"
setw -g window-status-current-format " #I:#W "

# 非活动窗口
setw -g window-status-format " #I:#W "

# 窗格边框
set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7"

# 状态栏左侧:会话名
set -g status-left-length 30
set -g status-left "#[fg=#1a1b26,bg=#7aa2f7,bold] #S #[default] "

# 状态栏右侧:时间日期
set -g status-right-length 50
set -g status-right "#[fg=#565f89] %Y-%m-%d #[fg=#1a1b26,bg=#7aa2f7,bold] %H:%M "

# 消息样式
set -g message-style "bg=#7aa2f7,fg=#1a1b26,bold"

# -------------------- 其他优化 --------------------
# 监听窗口活动(有输出时高亮提示)
setw -g monitor-activity on
set -g visual-activity off

tmux 配置说明文档

基于当前 ~/.tmux.conf 配置编写,适合零基础新手。
配置文件位置:~/.tmux.conf
tmux 版本:3.2a


一、tmux 是什么?

tmux(Terminal Multiplexer)是一个终端复用器,核心能力:

  • 分屏:在一个终端窗口里同时显示多个终端
  • 会话:关闭终端窗口后程序不会死,下次可以重新连上
  • 远程友好:SSH 断了也能恢复工作现场

简单理解:tmux 让一个终端窗口变成多个终端,而且关不掉。

安装(如果还没装)

sudo apt install tmux

二、最重要的概念:前缀键

什么是前缀键?

tmux 有一个特殊按键叫前缀键(prefix key)。你的配置把前缀键设为 Ctrl+a

绝大多数 tmux 快捷键都需要两步操作:

第一步:按下 Ctrl+a,然后松开
第二步:再按下一个功能键

⚠️ 新手最容易犯的错

很多人会同时按住 Ctrl+a 和后面的键,这是不对的。

正确操作示范(以竖分屏 | 为例):

1. 按住 Ctrl
2. 按一下 a
3. 松开 Ctrl 和 a        ← 注意:这里要松开!
4. 按一下 Shift+\(即 | 键)

整个过程大概像这样:Ctrl+a ... 松手 ... |

速记格式说明

本文档用以下格式表示快捷键:

  • Ctrl+a | → 先按 Ctrl+a 松开,再按 |
  • Alt+h → 直接按,不需要前缀键(配置里用 -n 标记的都不需要)

三、三大核心概念

tmux 用三个层级组织你的工作区:

Session(会话)
  └── Window(窗口)—— 底部状态栏显示的标签页
        └── Pane(窗格)—— 屏幕上分割出来的小区域

打个比方:

  • Session = 一个工作项目
  • Window = 项目里的不同任务(浏览器标签页的感觉)
  • Pane = 同一个任务里需要并排看的东西

四、会话(Session)管理

启动与退出

# 启动一个匿名会话
tmux

# 启动一个命名会话(推荐,方便后续查找)
tmux new -s myproject

# 启动一个指定名称的会话,并给它起个窗口名
tmux new -s myproject -n editor

# 从会话中脱离(会话在后台继续运行,程序不会中断)
# 快捷键:Ctrl+a d
# 或者命令:
tmux detach

查看与恢复

# 列出所有会话
tmux ls
# 输出示例:
# myproject: 1 windows (created Tue Apr 15 10:00:00 2026)
# work: 3 windows (created Tue Apr 15 09:30:00 2026)

# 重新连接到上次的会话
tmux attach
# 或简写
tmux a

# 连接到指定会话
tmux attach -t myproject
# 或简写
tmux a -t myproject

会话内切换

快捷键 说明
Ctrl+a s 列出所有会话(可用方向键选择,Enter 切换)
Ctrl+a $ 重命名当前会话
Ctrl+a d 脱离当前会话(回到普通终端)

杀掉会话

# 杀掉指定会话
tmux kill-session -t myproject

# 杀掉所有会话
tmux kill-server

五、窗口(Window)管理

窗口就像浏览器的标签页,在底部状态栏显示。

快捷键 说明
Ctrl+a c 新建窗口(自动保持当前路径)
Ctrl+a 1 ~ Ctrl+a 9 跳转到第 1~9 个窗口
Ctrl+a n 下一个窗口(next)
Ctrl+a p 上一个窗口(previous)
Ctrl+a w 列出所有窗口(可用方向键选择)
Ctrl+a , 重命名当前窗口
Ctrl+a & 关闭当前窗口

状态栏怎么看?

[myproject] 0:vim-  1:bash*  2:git-
             ↑       ↑         ↑
           非活动   当前窗口  非活动
  • 带高亮背景的是当前窗口
  • * 的是当前窗口
  • - 的是非活动窗口
  • 窗口编号从 1 开始(你的配置设定了 base-index 1

六、窗格(Pane)管理 —— 分屏

这是 tmux 最常用的功能之一。

分屏

快捷键 说明
Ctrl+a | 左右竖分屏(` ` 竖线,视觉上和方向一致)
Ctrl+a - 上下横分屏(- 横线,视觉上和方向一致)

操作步骤(竖分屏):

1. Ctrl+a(松开)
2. Shift+\(即 | 键)

切换窗格

快捷键 说明
Alt+h 切到左边窗格
Alt+j 切到下边窗格
Alt+k 切到上边窗格
Alt+l 切到右边窗格

注意:这四个键不需要前缀键,直接 Alt+h 就行。
记忆方式:和 vim 的 h/j/k/l 完全一致(左/下/上/右)。

调整窗格大小

快捷键 说明
Ctrl+a H 窗格向左扩大 5 格
Ctrl+a J 窗格向下扩大 5 格
Ctrl+a K 窗格向上扩大 5 格
Ctrl+a L 窗格向右扩大 5 格

Ctrl+a H 可以连续按(按住 H 不松),因为配置里用了 -r(repeatable)。

其他窗格操作

快捷键 说明
Ctrl+a > 当前窗格和下一个窗格交换位置
Ctrl+a < 当前窗格和上一个窗格交换位置
Ctrl+a x 关闭当前窗格(会有确认提示)
Ctrl+a z 当前窗格全屏/恢复(再按一次恢复)

七、复制模式(Copy Mode)

当你在 tmux 里想翻看之前的输出、复制一段文字时,需要进入「复制模式」。

进入与退出

操作 说明
Ctrl+a Enter 进入复制模式
q 退出复制模式

复制模式下的操作(vi 风格)

进入复制模式后,可以用 vi 风格的按键移动光标:

按键 说明
h/j/k/l 左/下/上/右移动光标
w / b 下一个词 / 上一个词
gg 跳到最顶部
G 跳到最底部
Ctrl+u 向上翻半页
Ctrl+d 向下翻半页

选择与复制

按键 说明
v 开始选择(移动光标来选中文字)
y 复制选中内容到系统剪贴板,并退出复制模式
q 不复制,直接退出

完整复制流程示例

场景:你想复制终端里的一段输出

1. Ctrl+a Enter          ← 进入复制模式
2. 用 j/k 或方向键移动光标到要复制的起始位置
3. 按 v                  ← 开始选择(文字会高亮)
4. 用 j/k 移动光标到结束位置
5. 按 y                  ← 复制到系统剪贴板,自动退出复制模式
6. 在其他程序里 Ctrl+V   ← 粘贴

鼠标复制(更简单)

你的配置启用了鼠标支持,所以也可以:

1. 直接用鼠标拖选文字
2. 松开鼠标,内容自动复制到系统剪贴板
3. 在其他程序里 Ctrl+V 粘贴

八、同步输入

同步输入模式下,你在当前窗格敲的每一个键都会同时发送到所有窗格

快捷键 说明
Ctrl+a S 开启/关闭同步输入

使用场景:同时操作多台服务器时,在一个窗格输入命令,所有窗格同时执行。

注意:用完记得再按一次 Ctrl+a S 关掉,否则你切换到别的窗格时会一头雾水。


九、鼠标操作

你的配置启用了 mouse on,所以可以直接用鼠标:

操作 说明
点击窗格 切换到该窗格
拖拽窗格边框 调整窗格大小
鼠标滚轮 向上滚动查看历史输出
鼠标拖选文字 自动复制到系统剪贴板
点击状态栏窗口名 切换到该窗口

小技巧:如果想在 tmux 里用鼠标选中复制(而不是进入复制模式),
直接拖选即可,松开后自动复制。需要粘贴到 tmux 内部的话用 Ctrl+a ]


十、实用技巧

10.1 快速重载配置

修改 ~/.tmux.conf 后,不需要重启 tmux:

Ctrl+a r → 显示 "tmux config reloaded!" 即成功

10.2 命令模式

Ctrl+a : 进入命令模式,可以输入任何 tmux 命令:

:resize-pane -D 10      ← 当前窗格向下扩大 10 行
:swap-window -t 3       ← 把当前窗口移到第 3 个位置
:set mouse off           ← 临时关闭鼠标
:kill-session -t old     ← 杀掉指定会话

10.3 在窗格间发送按键

有时你想在当前窗格操作另一个窗格:

Ctrl+a : send-keys -t 1 "ls -la" Enter

这会向第 1 个窗格发送 ls -la 命令并执行。

10.4 窗格全屏切换

正在一个窗格里专注工作时,可以临时全屏:

Ctrl+a z    ← 当前窗格全屏
Ctrl+a z    ← 再按一次恢复

10.5 翻页查看历史

终端输出太多,想往上翻看:

方法一:鼠标滚轮直接滚(最直观)
方法二:Ctrl+a Enter 进入复制模式,然后用 Ctrl+u / Ctrl+d 翻页

你的历史缓冲区设置为 50000 行,足够回看很长的输出。

10.6 保存终端输出到文件

在命令模式下:

:capture-pane -S -100    ← 捕获当前窗格最近 100 行
:save-buffer ~/output.txt ← 保存到文件

十一、状态栏解读

你的配置使用了 Tokyo Night 配色,状态栏分三部分:

[左]                                    [中]              [右]
 #S(会话名)     1:vim-  2:bash*  3:git-       2026-04-15  14:30
 蓝底白字        非活动   当前     非活动        灰色       蓝底白字
  • 左侧蓝色块:当前会话名称(#S
  • 中间:窗口列表,高亮的是当前窗口
  • 右侧:日期和时间

窗格边框:

  • 非活动窗格:暗蓝色边框
  • 当前窗格:亮蓝色边框

十二、常见问题

Q:按了快捷键没反应?

检查以下几点:

  1. 是否先按了 Ctrl+a松开了?
  2. | 需要 Shift+\,不是单独按 \
  3. 确认你在 tmux 会话内(终端底部有状态栏)

Q:鼠标无法复制?

确认 xclip 已安装:

which xclip
# 如果没有输出,安装它:
# sudo apt install xclip

Q:颜色显示不对?

确认终端支持真彩色。在 .bashrc.zshrc 中设置:

export TERM=xterm-256color

Q:SSH 断开后怎么恢复?

# 重新连接到服务器后
tmux a            # 恢复最近一个会话
tmux a -t work    # 恢复指定会话

Q:怎么退出 tmux?

# 方法一:脱离(会话后台继续运行)
Ctrl+a d

# 方法二:杀掉会话(彻底关闭)
tmux kill-session -t 会话名

# 方法三:杀掉所有
tmux kill-server

Q:快捷键和程序冲突了?

Alt+h/j/k/l 可能和其他程序冲突。如果某个程序需要这些按键,
可以临时关闭 tmux 鼠标:Ctrl+a :set mouse off
用完再开:Ctrl+a :set mouse on

Q:tmux 里 vim/nvim 颜色不对?

确认 ~/.tmux.conf 里有这两行(你的配置已包含):

set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

十三、完整快捷键速查表

通用操作

快捷键 说明 需要前缀键?
Ctrl+a 前缀键 -
Ctrl+a ? 显示所有快捷键 Yes
Ctrl+a : 进入命令模式 Yes
Ctrl+a r 重载配置文件 Yes
Ctrl+a d 脱离当前会话 Yes

窗格(Pane)

快捷键 说明 需要前缀键?
Ctrl+a | 左右竖分屏 Yes
Ctrl+a - 上下横分屏 Yes
Alt+h 切到左窗格 No
Alt+j 切到下窗格 No
Alt+k 切到上窗格 No
Alt+l 切到右窗格 No
Ctrl+a H 窗格向左扩大 Yes
Ctrl+a J 窗格向下扩大 Yes
Ctrl+a K 窗格向上扩大 Yes
Ctrl+a L 窗格向右扩大 Yes
Ctrl+a > 和下一个窗格交换 Yes
Ctrl+a < 和上一个窗格交换 Yes
Ctrl+a x 关闭当前窗格 Yes
Ctrl+a z 全屏/恢复切换 Yes

窗口(Window)

快捷键 说明 需要前缀键?
Ctrl+a c 新建窗口 Yes
Ctrl+a 1~9 跳到第 N 个窗口 Yes
Ctrl+a n 下一个窗口 Yes
Ctrl+a p 上一个窗口 Yes
Ctrl+a w 列出所有窗口 Yes
Ctrl+a , 重命名窗口 Yes
Ctrl+a & 关闭窗口 Yes

复制模式

快捷键 说明 需要前缀键?
Ctrl+a Enter 进入复制模式 Yes
v 开始选择 仅复制模式内
y 复制到系统剪贴板 仅复制模式内
q 退出复制模式 仅复制模式内
鼠标拖选 复制到系统剪贴板 -

会话(Session)

快捷键 说明 需要前缀键?
Ctrl+a s 列出所有会话 Yes
Ctrl+a $ 重命名会话 Yes
Ctrl+a d 脱离会话 Yes
Ctrl+a S 开关同步输入 Yes

十四、推荐的工作流

新手入门流程

1. 打开终端,输入:tmux new -s work

2. 开始写代码,需要看日志?分屏:
   Ctrl+a -    (上下分屏,上面写代码,下面看日志)

3. 需要同时看另一个项目?新建窗口:
   Ctrl+a c    (新窗口,互不干扰)

4. 需要专注?全屏当前窗格:
   Ctrl+a z    (再按恢复)

5. 下班了?脱离会话:
   Ctrl+a d    (或者直接关掉终端窗口也行)

6. 明天继续:
   tmux a -t work    (工作现场完整恢复)

进阶:多项目管理

# 每个项目一个会话
tmux new -s frontend     # 前端项目
tmux new -s backend      # 后端项目
tmux new -s devops       # 运维操作

# 在会话间切换
Ctrl+a s    → 弹出会话列表,方向键选择,Enter 切换

# 或者从终端直接切
tmux switch -t frontend

以上配置和文档来自ai。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容