登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

终端 tmux 窗格布局保存与恢复的操作清单

来源:17golang原创

时间:2026-10-02 08:11:39 390浏览 收藏

tmux 本身可以在同一个服务器进程里分离并重新连接,但机器重启或 tmux 服务器退出后,原有会话和窗格会消失。要把会话、窗口、窗格布局和工作目录保存下来,可以安装 tmux-resurrect:默认按 Ctrl-b Ctrl-s 保存,按 Ctrl-b Ctrl-r 恢复。

tmux 官方项目:https://github.com/tmux/tmux

tmux-resurrect 项目:https://github.com/tmux-plugins/tmux-resurrect

恢复前先确认一件事:插件会重建会话、窗口、窗格、工作目录和布局,但不是进程内存快照。能否恢复窗格中的程序取决于插件支持范围与个人配置,未保存的数据仍应由程序自身负责。

一、安装插件并确认快捷键可用

推荐先使用 Tmux Plugin Manager(TPM)管理插件。在 ~/.tmux.conf 的插件区域加入下面两行,并确保 TPM 的运行行放在配置文件末尾附近。

# 声明 tmux-resurrect,用于保存和恢复 tmux 环境
set -g @plugin 'tmux-plugins/tmux-resurrect'

# 让 TPM 加载已声明的插件;路径按 TPM 默认安装位置填写
run '~/.tmux/plugins/tpm/tpm'

保存配置后回到 tmux,按 Ctrl-b I 安装插件;如果 TPM 已经安装,也可以先按 Ctrl-b : 打开命令提示,再执行 source-file ~/.tmux.conf 重新加载。看到插件安装完成且没有错误提示,就可以继续。

原创 tmux 工作区界面说明图,展示配置区域、TPM 插件项与安装完成状态
图1:插件入口操作示意图,展示配置项、安装入口和完成状态;这是原创说明图,不是终端截图。

二、整理窗口与窗格,再保存当前工作区

先把工作区整理到你希望恢复的状态。常用入口是:Ctrl-b % 左右分窗格、Ctrl-b " 上下分窗格、Ctrl-b Space 切换预设布局。进入每个窗格后切换到对应项目目录,并给重要窗口取一个稳定名称。

  1. 按 Ctrl-b c 新建需要的窗口,按 Ctrl-b , 重命名。
  2. 用分割快捷键建立窗格,用 Ctrl-b 加方向键切换焦点。
  3. 在每个窗格进入需要的工作目录,并确认窗口和活动窗格位置。
  4. 按 Ctrl-b Ctrl-s 保存。前缀键与 Ctrl-s 是先后按下,不是四键同时按。

保存完成后,状态栏会短暂显示保存成功提示。默认保存文件位于 ~/.tmux/resurrect/;采用 XDG 数据目录时,也可能位于 ~/.local/share/tmux/resurrect 或 $XDG_DATA_HOME/tmux/resurrect。验收重点不是“按过快捷键”,而是目录里出现新的时间戳文件,并且 last 指向最近一次保存。

原创 tmux 多窗格界面说明图,展示三窗格布局、活动窗格、保存提示与本地存档状态
图2:布局保存操作示意图,展示工作区整理、活动窗格和保存完成反馈;这是原创界面说明图。

三、在新 tmux 实例中恢复最近一次保存

需要模拟真正的冷恢复时,先确保重要程序的数据已由程序自身保存,再退出旧 tmux 服务器。重新启动一个新的 tmux 实例后,按 Ctrl-b Ctrl-r。插件会读取 last 对应的存档并重建会话结构。

恢复后按下面顺序核对:

  • 会话数量和名称是否一致;
  • 窗口顺序、名称和活动窗口是否正确;
  • 每个窗口的窗格数量、比例和活动窗格是否恢复;
  • 各窗格工作目录是否回到保存时的位置;
  • 需要的程序是否按插件策略恢复,不能恢复的窗格是否落回可用 shell。
原创 tmux 恢复结果界面说明图,展示会话树、窗口名称、三窗格布局和恢复完成状态
图3:恢复结果验收示意图,用于核对会话、窗口、窗格比例与工作目录;这是原创说明图,不是运行结果截图。

四、恢复不完整时逐项修正

现象优先检查处理方法
按快捷键没有反应插件是否安装、配置是否重新加载重新执行 TPM 安装,再 source 配置文件
布局恢复但程序没有恢复程序是否在默认恢复名单、命令参数是否受支持阅读插件的 restoring programs 文档,按需配置恢复策略
工作目录不对保存时目录是否存在、恢复时路径是否仍有效修复路径后重新保存,不要依赖已删除或挂载失败的目录
恢复了错误的版本last 当前指向哪个存档把 last 重新链接到目标时间戳文件后再恢复

若要恢复更早的存档,可以进入保存目录,找到目标时间戳文件,再把 last 指向它:

# 进入 tmux-resurrect 的默认存档目录
cd ~/.tmux/resurrect/

# 查看历史存档,再把 last 指向选定文件
ls -lt
ln -sf 'tmux_resurrect_目标时间戳.txt' last

随后在一个干净的 tmux 实例中按 Ctrl-b Ctrl-r。不要把存档文件当成应用数据备份;代码、数据库、编辑器未保存内容仍应使用各自的保存与版本管理机制。

五、最终操作清单

  • 配置 tmux-resurrect 并确认 TPM 已安装插件。
  • 整理窗口名称、窗格比例、活动窗格与工作目录。
  • 按 Ctrl-b Ctrl-s 保存,并确认生成新存档。
  • 在新的 tmux 实例中按 Ctrl-b Ctrl-r 恢复。
  • 逐项核对会话、窗口、窗格、目录与可恢复程序。
  • 需要回退时重定向 last,再执行一次恢复。

常见问题

tmux 原生的 select-layout 能代替 tmux-resurrect 吗

select-layout 可以应用命名布局或保存的布局字符串,适合同一 tmux 服务器内调整窗格;它不负责跨服务器重启保存完整会话环境。

保存时要不要先退出窗格里的程序

不一定,但必须先让程序保存自身数据。插件记录的是环境结构和有限的程序恢复信息,不会保存任意进程内存。

如何自动定时保存

可以另外使用 tmux-continuum 做周期保存和自动恢复;在手动流程尚未验收前,建议先保持手动保存,避免把错误布局持续写入最新存档。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>