/usr/bin/script ですべての端末セッションを開始します。

/usr/bin/script ですべての端末セッションを開始します。

私はターミナルセッションのすべての入力と出力を記録するために少しのディスクスペースを使いたいと思います/usr/bin/script。すべての新しいシェルセッション(現在使用中のセッション/bin/bash)をscript名前でファイルに書き込むセッションから始めたいと思います。~/.log/$(date --iso-8601=second).log

script.bashrcファイルの末尾から呼び出しを試みましたが、振り返るとデフォルトで競合が発生し、新しいシェルを開くことができませんでした。

そのような記録を保存するための可能な方法についてのアイデアはありますか?私はすでに1つ持っています「永遠のカーニバルの歴史」しかし、入力内容を知るだけでは必ずしも十分ではありません。

答え1

私はそれをrcfileの一番下に置くことは多くのことをするだろうとは思わない。script新しいシェルがロードされると、事前に宣言したすべての状態は次まで消去されます。それrcfileなどを永久にロードしようとしています。端末で次のように実行しました。

$ x=;bash --rcfile /dev/fd/3 3<<\$x
    export S_LOG=~/".log/$(date --iso-8601=second).log"
    exec   script -aeqfc "bash   --rcfile /dev/fd/3 -i" "$S_LOG" \
3<<""
    alias success='echo it worked'
    PS1='script $ '
    exec 3<&-

$x
script $ success
it worked
script $ cat "$S_LOG"
Script started on Mon Dec 14 15:43:28 2015
script $ success
it worked
script $ cat "$S_LOG"
script $

だから入れておくのがいいと思います。rcファイルを選択してexec残りの部分を読み取る新しいシェル後ろに新しいシェルと呼ぶポイントです。

関連情報