如何自動記錄每個終端會話?

如何自動記錄每個終端會話?

我喜歡使用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

相關內容