ターミナルでコマンドを入力しても、セッションを終了するまで~/.bash_history
ファイルに表示されません。
また、~/.bash_history
ファイルを手動で編集するとき(たとえば、最後の3つのコマンドを削除する)、history
と入力すると、~/.bash_history
ファイルから削除したコマンドが表示されます。セッションを終了して再度ログインすると、それらは消えます。
~/.bash_history
ファイルとhistory
コマンドはどのように同期しますか?
Bashターミナルを開くと、~/.bash_history
のコンテンツが読み込まれ、アクティブなシェルの履歴が(RAMに)構築され、そのシェルで実行されたすべてのコマンドがファイルにではなく、そのシェルにのみ追加されます。
Bashターミナルを閉じると、その履歴が~/.bash_history
ファイルに追加されます。
history
のオプション:history -a # save the active Shell's history to ~/.bash_history (appending)
history -c # clear the active Shell's history
history -d NNN # delete row NNN of the active Shell's history
history -r # reload the active Shell's history from ~/.bash_history (appending)
history -w # save the active Shell's history to ~/.bash_history (overwriting)
~/.bashrc
ファイルのオプションこの動作を変更して、コマンドの実行後に一時履歴が~/.bash_history
に直接保存されるようにするには、次の行を追加します。
Prompt_COMMAND="history -a"
さらに、コマンドを実行するたびにすべての端末で~/.bash_history
ファイルを自動的にロードする場合は、代わりに次の行を追加します。
Prompt_COMMAND="history -a; history -c; history -r"
特定のコマンド(たとえば、Sudo
およびcat
で始まるすべてのもの)を保存対象から除外するには、次の行を追加します。
HISTIGNORE="Sudo*:cat*"