保存完整的 GNU 屏幕会话状态

Bar*_*emy 34 shell gnu-screen

是否可以保留 GNU 屏幕窗口(或只是标准 shell)的“状态”,以便我可以在重新启动后重新加载所有内容:

  • 开壳数
  • 每个外壳的名称
  • 每个shell的当前目录
  • 每个壳的历史
  • 如果可能,他们的环境变量

ech*_*hox 20

保存完整的屏幕会话实际上是不可能的。

你可以做的是创建一个适当的.screenrc,它会在你重新启动系统后设置一些东西。

以下是对您列出的内容的一些评论:

  • 开壳数
  • 每个外壳的名称
  • 每个shell的当前目录

.screenrc在启动时使用这样的东西来打开一些特定的外壳:

## set the default shell
shell                   zsh

# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]
Run Code Online (Sandbox Code Playgroud)

您将获得 '' 之间的字符串作为您的窗口名称和名称后的命令将在您的默认 shell 上执行。包括您想要的任何脚本,例如更改特定目录并打开一些日志。

  • 每个壳的历史

你有没有想过在你的会话中分享 shell 的历史?恕我直言,这让事情变得更容易。在 ZSH 中,它已setopt SHARE_HISTORY在您的.zshrc

  • 如果可能,他们的环境变量

如果你真的需要这个并且不想做任何权衡,你可以考虑一个 shell 脚本,它读出屏幕的当前状态,保存 shell 的数量,环境变量等,并将这些信息放在启动脚本中由您的.screenrc. 对我来说,这不值得付出努力,因为如果我可以自定义屏幕的默认窗口,我会欣赏重新启动后的干净环境。


小智 10

我偶然发现了一个名为screen-session的项目。它允许您在某种程度上保存和重新加载 GNU Screen 会话。