すべての端末からのすべての bash コマンドを 1 つのファイルに保存する方法はありますか?

すべての端末からのすべての bash コマンドを 1 つのファイルに保存する方法はありますか?

すべての端末からのすべての bash コマンドを 1 つのファイルに保存する方法はありますか? デフォルトでは、端末ごとに履歴が異なるため、混乱が生じます。すべての履歴を 1 つのファイルに保存し、代わりにオプションでそれらのコマンドを検索したいのですが、おそらくshift+ はuparrow中央ファイルの履歴を検索できるのではないでしょうか?

答え1

まず、シェルプロンプトで次のコマンド(任意の値を設定します)を入力して、各ユーザーの履歴に時間とユーザー名を追加し、各履歴ファイルのサイズをデフォルトの500行から拡張するようにシェルに指示する必要があります。

echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000

その後再起動すると、変更が有効になります。なぜでしょうか? 日時がなく、誰がコマンドを入力したかが識別されない履歴はあまり役に立たないからです。

次に、各ユーザーの ~/.bash_history の内容を定期的に共同履歴ファイルにコピーして並べ替え、統合された履歴が日付、時刻、ユーザーの順に並べ替えられるようにします。

それが終わったら、管理者レベルのスクリプトで各ユーザーディレクトリのソースファイルを削除します。

cd /home/userx && rm ~/.bash_history && history -c

変化バツすべてのユーザーに対してその行を実行するためです。

関連情報