# tmux 会话持久化与自动恢复完整方案(tmux + tpm + tmux-resurrect + continuum)

本指南介绍一个稳定且成熟的解决方案,让你的 tmux:

  • 自动保存会话
  • 自动恢复窗口/面板布局
  • 终端关闭也保持程序继续运行
  • 机器重启也能恢复会话
  • 永久持久化所有 tmux 工作状态

解决方案基于 三个核心 tmux 插件

插件功能
tpmtmux 的插件管理器
tmux-resurrect保存与恢复 tmux 会话到磁盘
tmux-continuum自动保存 + 定时保存 + 自动恢复

# 1. 安装 tmux(版本需 ≥ 3.3)

tmux 在许多 Linux 发行版中的版本较旧(如 Ubuntu 18.04 内置 tmux 2.6)。
为了使用最新插件,推荐使用 tmux ≥ 3.3


1.1 使用包管理器安装(推荐)

平台安装命令
Arch Linuxpacman -S tmux
Debian / Ubuntusudo apt install tmux
Fedorasudo dnf install tmux
RHEL / CentOSsudo yum install tmux
openSUSEsudo zypper install tmux
macOS(Homebrew)brew install tmux
macOS(MacPorts)sudo port install tmux

# 2. 安装 TPM(Tmux Plugin Manager)

TPM 是 tmux 的官方插件管理工具,类似于 Vim 的 Plug / Vundle。

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

注意:目录位置必须是:
~/.tmux/plugins/tpm(插件会从此路径加载)


# 3. 创建并配置 tmux 配置文件

tmux 配置文件常见位置(任选其一):

  • ~/.tmux.conf(最常见)
  • ~/.config/tmux/tmux.conf

以下教程使用:

~/.tmux.conf

3.1 新建配置文件

touch ~/.tmux.conf

3.2 编辑配置文件

vim ~/.tmux.conf

注入配置(命令方式)**

sudo tee ~/.tmux.conf <<-'EOF'
# =======================
# TPM 插件管理器
# =======================
set -g @plugin 'tmux-plugins/tpm'

# =======================
# 会话保存与恢复插件
# =======================
set -g @plugin 'tmux-plugins/tmux-resurrect'

# =======================
# 自动保存、自动恢复插件
# =======================
set -g @plugin 'tmux-plugins/tmux-continuum'

# 自动保存间隔(单位:分钟)
set -g @continuum-save-interval '15'

# 启动 tmux 时自动恢复上次会话
set -g @continuum-restore 'on'

# 保存 pane 的历史内容
set -g @resurrect-capture-pane-contents 'on'

# 启用鼠标
set -g mouse on

# =======================
# 可选插件:改善复制粘贴体验
# =======================
set -g @plugin 'tmux-plugins/tmux-yank'

# =======================
# 运行 TPM(必须放在最后)
# =======================
run -b '~/.tmux/plugins/tpm/tpm'
EOF

i 进入编辑模式,将下面的配置整体粘贴进去。


3.3 完整配置(含中文注释)

# =======================
# TPM 插件管理器
# =======================
set -g @plugin 'tmux-plugins/tpm'

# =======================
# 会话保存与恢复插件
# =======================
set -g @plugin 'tmux-plugins/tmux-resurrect'

# =======================
# 自动保存、自动恢复插件
# =======================
set -g @plugin 'tmux-plugins/tmux-continuum'

# 自动保存间隔(单位:分钟)
set -g @continuum-save-interval '15'

# 启动 tmux 时自动恢复上次会话
set -g @continuum-restore 'on'

# 保存 pane 的历史内容
set -g @resurrect-capture-pane-contents 'on'

# 启用鼠标
set -g mouse on

# =======================
# 可选插件:改善复制粘贴体验
# =======================
set -g @plugin 'tmux-plugins/tmux-yank'

# =======================
# 运行 TPM(必须放在最后)
# =======================
run -b '~/.tmux/plugins/tpm/tpm'

3.4 重新加载配置

如果你已经在 tmux 内:

tmux source ~/.tmux.conf

# 4. 使用 TPM 安装插件

在 tmux 内使用快捷键:

Prefix + I

默认 Prefix = Ctrl + b

  • 屏幕底部显示插件安装进度
  • 看到 "TMUX environment reloaded. Done" 即安装成功
  • 按 Enter 继续

4.1 命令行管理插件(补充)

  • 安装插件
~/.tmux/plugins/tpm/bin/install_plugins
  • 更新所有插件
~/.tmux/plugins/tpm/bin/update_plugins all
  • 更新单个插件
~/.tmux/plugins/tpm/bin/update_plugins tmux-sensible
  • 删除未列入配置的插件
~/.tmux/plugins/tpm/bin/clean_plugins

# 5. 常用快捷键

快捷键功能
Prefix + I安装(或更新)插件
Prefix + Ctrl + s保存当前所有会话
Prefix + Ctrl + r恢复保存的会话
鼠标右键tmux-yank 复制选中内容

tmux-continuum 自动保存,通常无需手动保存。


# 6. 工作原理说明

  1. tpm
    管理 tmux 插件,负责安装 / 更新 / 删除。

  2. tmux-resurrect
    保存:

    • tmux 会话结构
    • 窗口布局
    • pane 命令
    • pane 内容
      保存路径:~/.tmux/resurrect/
  3. tmux-continuum

    • 每 15 分钟自动保存一次
    • tmux 启动时自动恢复上一次会话
    • 可选开机自动启动 tmux
  4. tmux-yank

    • 改善复制粘贴体验
    • 鼠标选中后,释放右键即完成复制

# 7. tmux 的必要性(总结)

① 终端只能开一个窗口?

tmux 可开多个窗口、多个 Pane(分屏)。

② 关闭终端导致进程终止?

tmux 会话与终端分离,关闭 SSH 或 Terminal,任务仍会继续运行。

③ 远程服务器断线导致环境丢失?

tmux-resurrect 可恢复所有窗口、pane、执行路径甚至 pane 内容。


# 8. 参考资料