私はターミナルセッションのすべての入力と出力を記録するために少しのディスクスペースを使いたいと思います/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
残りの部分を読み取る新しいシェル後ろに新しいシェルと呼ぶポイントです。