Tmux

本文最后更新于:2026年7月23日 下午

Tmux

tmux 是一个终端复用器,允许你在单个终端窗口中运行多个终端会话,并在它们之间切换。它非常适合长时间运行的任务、远程开发和多任务处理。

Github项目链接: https://github.com/tmux/tmux
官方文档: https://github.com/tmux/tmux/wiki

tmux在工作中的作用

  • 单个窗口中多个终端
    不再需要开启多个不同的终端窗口切换来切换去。在一个屏幕里,可以:
    • 水平/垂直无限切分面板(Pane)。比如左边写代码,右上看日志,右下用 top 监测系统资源。
    • 创建多个独立标签页(Window),在不同的项目或目录之间快速跳转。
  • 会话保持
    在没有 tmux 之前,你用 SSH 连上服务器跑一个训练模型或编译任务,一旦网线断开、VPN 掉线或者关闭终端窗口,前台任务就会跟着被杀掉。
    • 使用 tmux 后:所有程序其实是运行在后台的 tmux server 里,而不是当前窗口。
    • 会话挂起(Detach): 即使直接关掉电脑,服务器上的任务依然在后台疯狂跑。
    • 随时恢复(Attach): 重新登录服务器后,敲一条命令就能瞬间回到原来的工作现场,连历史滚动输出都一模一样。
  • 协同操作
    不同用户可以控制同一个 session, 同一个window

快速开始

  1. 创建session

    1
    2
    # 创建 一个 名为 example 的 session 
    tmux new -s example

    名字叫什么都可以, 一般偷懒都用自己名字首字母
    如果创建成功, 会直接进入到新创建的 tmux session 中

  2. 水平切割, 新建pane

    1. 键盘按下 Ctrl+b, 松开

    2. 键盘按下 ", 松开

      操作完成后, window会有上下两个panel

  3. panel 切换

    1. 键盘按下 Ctrl+b, 松开

    2. 键盘按下 , 松开

      此时光标会从上方的panel移动到下方

  4. 开启一个新的连接, 重新连接上已有的 tmux session

    1
    tmux a -t example

    重新连接 名为example的session

tmux常用用法

查看命令说明 man 1 tmux
查看快捷键说明文档 ctrl+b ?

常用Session操作

bash基础命令 意义
tmux new -s session的名字 创建一个session
tmux a -t session的名字 连接上一个session
tmux ls 查看所有的session

常用window操作

窗口(window)级快捷键
类型快捷键意义
新建窗口 Ctrl+b + c 在当前session创建一个新的窗口
查询所有窗口 Ctrl+b + w 查看所有窗口, 可在此处进行切换
窗口间移动 Ctrl+b + w
进入下一个窗口
Ctrl+b + w
进入上一个窗口
关闭窗口 Ctrl+b + & 关闭当前窗口
重命名当前窗口 Ctrl+b + , 重命名当前窗口

常用Panel操作

面板(pane)级快捷键
类型快捷键意义
新建面板 Ctrl+b + " 当前面板上下一分为二,下侧新建面板
Ctrl+b + % 当前面板左右一分为二,右侧新建面板
面板间移动 Ctrl+b + 方向键 移动光标切换面板
Ctrl+b + ; 切换到上次使用的面板
Ctrl+b + q 显示面板编号
在编号消失前输入对应的数字可切换到相应的面板
关闭面板 Ctrl+b + x 关闭当前面板, 需要确认
样式改变 Ctrl+b + z 最大化当前面板,再重复一次按键后恢复正常
Ctrl+b + 空格键 水平<->垂直
Ctrl+b + Alt+方向键 调整当前面板边缘 5pix/次
Ctrl+b + Ctrl+方向键 调整当前面板边缘 1pix/次
特殊 Ctrl+b + ! 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
翻屏模式快捷键
类型快捷键信息
进入翻屏模式 Ctrl+b + [ 进入翻屏模式后,面板右上角会显示页码
向上翻页 PageUp 翻屏模式下才能使用
向下翻页 PageDown 翻屏模式下才能使用
退出翻屏模式 q 翻屏模式下才能使用

Tmux 的 session 持久化

tmux 本身默认是“内存级”保存的,如果电脑重启,所有的 session(窗口、面板布局、历史记录)都会丢失
但通过安装社区最成熟的插件 tmux-resurrect 和 tmux-continuum,可以实现:自动定时保存(比如每 15 分钟后台保存一次当前所有 session)

电脑重启后自动恢复(开机重新打开终端,所有的终端窗口和历史界面瞬间原样重现)

配置

最简单的配置方案(通过 TPM 插件管理器)

  1. 安装 TPM(tmux 插件管理器)

    如果你的电脑(Linux/Mac/WSL)还没有安装 TPM,在终端运行以下命令:

    1
    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  2. 修改 ~/.tmux.conf 配置文件

    编辑你的 ~/.tmux.conf 文件(没有就创建一个),在底部加上以下配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 1. 声明插件
    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    set -g @plugin 'tmux-plugins/tmux-continuum'

    # 2. 开启自动恢复和自动保存功能
    set -g @continuum-restore 'on' # 每次启动 tmux 自动恢复上次保存的状态
    set -g @continuum-save-interval '15' # 每 15 分钟自动后台保存一次状态

    # 3. (可选)保存面板里的终端屏幕内容/历史记录
    set -g @resurrect-capture-pane-contents 'on'

    # 初始化 TPM(这行必须放在配置文件的最底部!)
    run '~/.tmux/plugins/tpm/tpm'
  3. 第三步:加载配置并安装插件
    打开一个新的 tmux session, 在 tmux 内部,按快捷键: Ctrl + b,然后按大写的 I(即 Shift + i)
    此时底栏会显示正在下载并安装插件,几秒钟后提示 Success 即可

使用方法

配置好后,大部分时候你什么都不用管:

  • 自动模式:
    tmux-continuum 会在后台默默地每 15 分钟帮你的所有窗口存一次快照
    电脑重启后,你只要重新在终端里敲 tmux,它就会自动恢复之前的所有 session

  • 手动保命快捷键(随时触发):
    手动保存当前状态:Ctrl + b,然后按 Ctrl + s(底栏会提示 Saving…)
    手动强制恢复上次状态:Ctrl + b,然后按 Ctrl + r(底栏会提示 Restoring…)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!