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 指向的保存文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM