Tmux会话重启后默认丢失,但通过Tmux-Resurrect插件可自动保存并恢复面板、窗口、工作目录及运行命令;需配合tpm安装,配置自动保存(如退出前)与恢复(如登录时),支持快捷键操作及自定义保存路径。

服务器重启后,Tmux会话默认全部丢失,但通过 Tmux-Resurrect 可以自动保存和恢复所有面板、窗口、工作目录、甚至正在运行的命令(如 vim、htop、tail -f 等)。
安装 Tmux-Resurrect 插件
确保已安装 tpm(Tmux Plugin Manager)。若未安装,先在 ~/.tmux.conf 末尾添加:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
然后在终端中运行:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
启动一次 tmux(tmux new),再按 Prefix + I(通常是 Ctrl-b 再按 I)安装插件。
启用自动保存与恢复
Tmux-Resurrect 默认不自动保存,需手动配置触发时机。推荐以下两种方式:
- 开机/登录时自动恢复:在 ~/.bashrc 或 ~/.zshrc 中追加:
if [ -z "$TMUX" ] && [ -n "$SSH_CONNECTION" ]; then tmux attach || tmux new; fi - 每次退出前自动保存:在 ~/.tmux.conf 加入:
set -g @resurrect-strategy-vim 'session'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-save-shell-history 'on'
并绑定快捷键实现一键保存(例如 Prefix + Ctrl-s):
bind-key C-s run-shell 'tmux-resurrect save'
保存与恢复的具体操作
手动保存当前所有会话状态(含运行中的进程、光标位置、历史命令等):
Prefix + Ctrl-s(前提是已配置上述绑定)
手动恢复上次保存的状态:
Prefix + Ctrl-r
保存文件默认位于 ~/.tmux/resurrect/last,可定期备份或同步到 Git;也可用 tmux-resurrect save -d /path/to/backup 指定路径。
注意事项与常见问题
部分程序无法真正“恢复”(如已终止的后台任务、监听端口的服务),Tmux-Resurrect 仅重建终端环境与命令行历史;对这类场景建议配合 systemd 服务或 screen + 自动脚本补充。
若恢复后 vim 显示乱码或 htop 不刷新,通常因终端尺寸未重置,可在恢复后执行 clear 或按 Prefix + r(重载终端尺寸)。
使用 SSH 连接远程服务器时,确保 ~/.tmux.conf 在目标机器上生效,且用户 shell 为 bash/zsh(非 dash)。











