【Linux】HISTSIZEとHISTFILESIZEの違い
前回記事にて、bashのコマンド履歴の保持件数を増やす設定について書きました。
「.bashrc」に、以下の行を追加するだけでしたね。
HISTSIZE=10000
HISTFILESIZE=10000
しかし、上記のHISTSIZEとHISTFILESIZEはいったいどういう意味なのでしょうか。
本日の記事は、HISTSIZEとHISTFILESIZEについての説明です。
HISTSIZEとHISTFILESIZEそれぞれの意味
HISTSIZE
HISTSIZEは、使用中のbashの履歴数の設定です。
実行中シェルのコマンド履歴を、メモリ上にキャッシュします。
例えば、「HISTSIZE=10」とかに設定すると、コマンド履歴はメモリ上に10件しか保持されません。
キャッシュされたコマンド履歴は、シェル終了時に「.bash_history」ファイルに書き出されます。
ちなみに、使用中シェルのコマンド履歴を、「.bash_history」ファイルに書き出したくない場合は、以下のコマンドでクリアできます。
(.bash_historyはクリアされません。当たり前ですが一応。)
history -c
HISTFILESIZE
こちらは、「.bash_history」ファイルに記録できるコマンド履歴の件数です。
当該ファイルはbash起動時に読み込まれ、キャッシュされます。
ちなみに、以下コマンドにより、「.bash_history」ファイルを読み込み直します。
(使用中シェルのコマンド履歴は失われますので、注意してください。)
history -r
さらに、以下コマンドを使うと、現在のシェルのコマンド履歴を「.bash_history」ファイルに追記できます。
history -a
最後に
以下まとめです。
HISTSIZE指定件数分のコマンド履歴がキャッシュに保持され、シェル終了時に(当該シェルで実行されたコマンド履歴が)「.bash_history」ファイルに追記されます。ただし、「.bash_history」ファイルに記録できるのはHISTFILESIZEに指定した件数までであり、当該件数を超えると、古い履歴から削除されます。