如何自动记录每个终端会话?

如何自动记录每个终端会话?

我喜欢使用historyscript、 和等工具来asciinema记录和审查 xterm (即bash/ sh) 会话,用于典型的一般管理原因,有时也用于全面的学习/复习;作为学习工具。

  • 我考虑将默认设置设置$SHELL为所述工具和/或命令的直接路径,例如:

    • /bin/script transcript.log;
    • /bin/asciinema rec -w0.5 term_log.json;
  • 但这些工具通常依赖于默认$SHELL设置(即/bin/bash/bin/sh/bin/zsh等)。

  • 另外,我觉得重新定义系统变量(即$SHELL$TERM等)或尝试使其与配置(*.conf)和点(~/.bashrc/ ~/.bash_profile)文件一起工作会充满各种漏洞和潜在问题。

  • 然而,每次我决定或意识到我想要一份会议记录时,都是事后发生的,或者我已经完成了有趣部分的一半,或者类似的场景。

设置类似的内容以自动记录所有内容(最好是(以及适用时)等)的正确或最佳实践stdinstdout什么stderr

答案1

.bash_profile在您的或中类似的东西.bashrc可能对您有用:

if test -t 0 -a -t 1 -a -z "$SCRIPTING"
then
    export SCRIPTING="$HOME/.script.$(date +%Y%m%d_%H%M%S).$$)"
    exec script "$SCRIPTING"
fi

相关内容