Linuxでは、環境変数を使用してコマンド履歴を別のファイルに送信できますか?
私が尋ねる理由は、後で参照できるようにシェルセッションを別のファイルに書き込むことに興味があるからです。
auditdなどを使用できることはわかっていますが、セッションを記録するには設定する必要があります。
答え1
私は最近Ask Ubuntuで非常によく似た質問に答えました。 https://askubuntu.com/questions/1175757/how-can-i-save-a-part-of-command-lines-into-a-new-file-using-history-command/1175763#1175763
-a
ファイル名と一緒に使用する必要があります。説明したようにhelp history
:
履歴:履歴[-c] [-dオフセット] [n]または履歴-anrw [ファイル名]または履歴-ps arg [arg...]
(...)
-aこのセッションの履歴行を履歴ファイルに追加します。
後で:
FILENAME を指定すると、履歴ファイルとして使用されます。それ以外の場合は$ HISTFILEに値がある場合はその値が使用され、そうでない場合は〜/ .bash_historyが使用されます。
たとえば、新しいセッションを開始して次のように入力します(これは$
ヒントであり、システムによって異なる可能性があります)。
$ echo a-new-session started at $(date)
$ history -a /tmp/new-history
この場合、/tmp/new-history
次のようになります。
echo a-new-session started at $(date)
history -a /tmp/new-history