私は、一般的な管理上の理由から、また時には包括的な学習/復習のために、学習ツールとして、 xterm (つまり/ ) セッションを記録および確認するために、、、history
などのツールを使用するのが好きです。script
asciinema
bash
sh
$SHELL
次のように、上記のツールやコマンドへの直接パスをデフォルトとして設定することを考えました。/bin/script transcript.log;
/bin/asciinema rec -w0.5 term_log.json;
ただし、これらのツールは通常、デフォルト
$SHELL
セット (/bin/bash
、、/bin/sh
など/bin/zsh
) があることを前提としています。$SHELL
また、システム変数 (つまり、、など)を再定義したり、config ( ) およびドット ( / ) ファイル$TERM
を使用して動作させようとすると、さまざまな穴や潜在的な問題が発生するように感じます。*.conf
~/.bashrc
~/.bash_profile
しかし、セッションの記録が必要だと決めたり、気付いたりするのは、事後だったり、すでに興味深い部分の半分が終わっていたり、そういったシナリオだったりします。
すべて (できればstdin
、stdout
(および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