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