过去的标准输出存储在哪里?

过去的标准输出存储在哪里?

他们在任何地方登录吗?终端死机后标准输出去了哪里?我知道我可以在它运行时轻松保存它,但有时我们只是在终端消失时才意识到我们需要它。

答案1

不,一旦终端消失,输出也消失了。其中一些可能仍会在 RAM 中停留一段时间,一些可能由于各种日志记录设置而已保存到日志中,但本质上它已经丢失了。这是故意的。如果信息被记录下来,它会很快填满您的磁盘(如果您使用 shell 执行所有操作,字符实际上会增加),并且它可能至少包含一些机密信息。我曾经尝试将 GNOME 终端回滚缓冲区设置为无限制。不久之后,我的机器开始慢得像爬行一样。终端用完了我所有的内存!

您可以使用 ~/.bashrc (未经测试)中的内容来设置一些奇特的日志记录,exec > /tmp/stdout.log 2> /tmp/stderr.log例如logstash轮换日志,但它仍然存在保留机密信息一段时间的基本问题。

大多数人所做的是依赖 shell 的历史文件,例如 ~/.bash_history,它存储命令,以便您可以复制结果。

答案2

script ~/terminal_logs/$(date +%Y%m%d-%H%M%S)-$(tty)-$$.log登录时在终端中使用。这会将您的会话保存在一个文件中,该文件以 shell 启动的日期和时间、终端和 shell 进程 ID 命名。

相关内容