tmux 使用 tmux-resurrent 保存当前工作环境

  tmux 是一个终端窗口复用工具软件,借助 tmux 的功能,用户可在单个终端窗口上实现多窗口,面板的管理功能.笔者有一个对 tmux 基础功能使用的介绍终端分屏复用工具 tmux 基本操作教程.

  tmux 通过会话的概念对用户的窗口进行管理,会话中保存有用户使用的窗口,面板等信息.当用户从当前会话中脱离( detach )的时候,会话并不会结束,而是在后台继续运行,使得在会话中运行的程序不会受用户脱离的影响,而当用户重新接入( attach )同一会话时,当前终端即重新显示会话中的内容.上述这些功能在使用单一终端登录的远端服务器时是很有用的,用户创建对应的会话后,运行其中的程序不会受用户网络链接断开,终端关闭等问题的影响,而是在后台运行的会话中保持运行.(一般 Linux 服务器版本会内置 screen 命令来提供类似功能,screen 命令基本操作教程)

  tmux 提供终端复用功能的一个重要基础在于用户脱离( detach )会话后,会话会在后台运行,进而用户的工作环境得以保持.但是当设备重启/关机时( 这在个人设备上使用时尤其常见 ),tmux 会话也会对应的停止,使得重启之后需要用户手动的去重新进行窗口创建,面板划分等操作.

  这里主要介绍一个 tmux 的插件 tmux-resurrent 来进行 tmux 会话的保存. tmux-resurrent 可以保存当前会话的窗口,面板划分等信息,还可以配置对某些软件的状态进行恢复,从而使得 tmux 可以对会话进行保存,方便在设备重启后工作环境的恢复.

 

  Tmux Plugin Manager 安装

  tmux 可以使用 Tmux Plugin Manager(TPM) 进行插件的管理.其安装也很简单.

  1.克隆 TPM 至本地.  

    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm    //克隆 TPM 至本地的 ~/.tmux/plugins/tpm 目录

  2.将以下内容添加到 tmux 的配置文件 ~/.tmux.conf 的尾部.注意最后的 run -b '~/.tmux/plugins/tpm/tpm' 命令需要始终放在该配置文件的最后一行.

    # List of plugins
    set -g @plugin 'tmux-plugins/tpm'
    set -g @plugin 'tmux-plugins/tmux-sensible'

    # Other examples:
    # set -g @plugin 'github_username/plugin_name'
    # set -g @plugin 'git@github.com/user/plugin'
    # set -g @plugin 'git@bitbucket.com/user/plugin'

    # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
    run -b '~/.tmux/plugins/tpm/tpm'

  3.修改完成配置文件后即完成 TPM 的安装,此时新打开的 session 即支持 TPM 的功能.对于已经打开的 tmux 会话,可以会话中通过以下命令使得上述修改生效.  

    tmux source ~/.tmux.conf    //在 tmux 会话中输入命令使得 TPM 配置生效

  4.在完成 TPM 的安装后,可以通过 TPM 提供的功能进行插件的安装和管理功能.更多可以参考 TPM 的 github.这里介绍下插件安装的功能.使用 TPM 安装 tmux 插件主要有两步.

  第一步是在配置文件 ~/.tmux.conf 中加入对应的插件的信息.添加的格式可以参考 tpm 安装时对应配置信息中注释的部分的格式.

    set -g @plugin 'xxxxx'        //在配置文件中添加插件信息,格式可参照 tpm 安装时的注释的格式

  第二步即在 tmux 会话中执行安装命令.具体而言是 <prefix> + I( 大写 i ),在默认情况下,即为 Ctrl + b + I.上述命令会将对应的插件下载到本地( ~/.tmux/plugin 文件夹中 ),进行插件安装.

    <prefix> I    //在 tmux 会话中通过命令安装对应的插件

  若要更新对应的插件,使用 <prefix> + u 命令.若要删除对应的插件,则首先要在配置文件 ~/.tmux.conf 中移除对应的插件的信息.再通过 <prefix> + alt + u 命令卸载该插件.注意卸载插件并不会删除对应的插件的目录,用户需要手动进行删除.

 

  tmux-resurrent 插件安装

  根据上面介绍的 TPM 安装插件的步骤进行 tmux-resurrent 插件的安装.

  1.在配置文件 ~/.tmux.conf 中加入 tmux-resurrnet 插件的信息.

    set -g @plugin 'tmux-plugins/tmux-resurrect'    //配置文件中加入 tmux-resurrent 插件信息

  2.在 tmux 会话中执行 TPM 安装命令,即 <prefix> + I( 大写 i ).执行命令后可查看目录 ~/.tmux/plugin/ 下是否存在对应的插件.

    <prefix> I        //默认情况下为 Ctrl + b + I,进行插件的安装

  3.在插件完成安装后即可借助 tmux-resurrent 插件进行当前会话的保存.通过 <prefix> + Ctrl + s 保存当前会话.在用户保存会话关机重启后,可在新创建的会话中通过 <prefix> + Ctrl + r 命令在 tmux 会话中恢复保存的会话.默认情况下 tmux-resurrent 会保存会话中的窗口状态,面板划分等等信息,还包括对某些程序的恢复( 可参考页面 Restoring programs ),更多的 tmux-resurrent 命令的功能可参考其 github. tmux-resurrent 插件保存的会话信息默认存放在目录 ~/.tmux/resurrent 目录中.

    <prefix> Ctrl s    //保存当前会话
    <prefix> Ctrl r    //加载保存的会话

   4.目前实现中, tmux-resurrent 保存的工作环境信息以 txt 文件的形式存放在 ~/.tmux/resurrent 目录下,该目录下有一个软链接 last 指向最近一次保存的工作环境 txt 文件.当用户加载保存的会话时,即恢复的是软链接 last 所指向的保存配置文件.相应的,通过修改 last 软链接的指向即可选择使用 <prefix> Ctrl r 命令加载某一次的会话保存设置. Linux 环境下对软链接的创建/删除/修改通过 ln 命令执行.其中 -s 表示使用符号链接( symbolic link ).

    ln -s link_target link_name         //创建软链接 link_name,其指向 link_target
    rm -rf link_name                    //删除名为 link_name 的对象( 注意名字后面不要加 '/' )
    ln -snf link_target link_name       //修改/创建指向 link_target 的软链接 link_name

  在 ~/.tmux/resurrent 目录下时,使用上述命令修改 last 的指向,进而选择加载某次保存的会话设置.

    ln -snf xxxx last                //修改 last 指向的保存文件

 

posted on 2020-05-07 21:59  yhjoker  阅读(1861)  评论(0编辑  收藏  举报

导航