虽然现代桌面环境通常会启动在上一个会话中打开的所有应用程序,并且某些终端仿真器甚至可能会打开与以前一样多的选项卡,但我从未见过这样的终端仿真器
- 在终端仿真器关闭时其前一个 shell 所在的目录中打开一个 shell, 和
- 显示与之前相同的输出。
从技术上讲,这两件事都应该是可能的:
- 可以通过文件系统找到 shell 的当前工作目录
/proc
。 - 如果终端仿真器保存了关闭之前显示的所有文本(包括 ANSI 序列),它可以恢复该状态并然后在上次所在的目录中启动 shell。如果终端仿真器还将 shell 历史文件的状态保存为终端关闭后的状态,则它还可以使 shell 在下次启动时加载该特定历史文件。
当然,还有其他事情,例如在变量中提供上一个命令的退出代码或上一个工作目录,但我的 main动机这是为了能够继续处理我之前的命令的结果(例如,编译器运行导致错误或包构建有一些警告),尽管我必须退出整个 X 会话,甚至重新启动机器 - 无需手动捕获该输出将提醒我或帮助我继续我要做的工作。
所以我想知道:X 是否已经有一个终端模拟器可以做这些事情?
如果其他应用程序(尤其是文本模式应用程序)在这样的终端中运行(可能从 shell 内调用),那么情况肯定会更加困难。复制它们的状态不仅仅通过目录名和历史文件来完成。
但话又说回来,存在(或多或少有效的)工具来冻结和解冻整个过程......