HISTSIZE
対の違いは何HISTFILESIZE
ですか?
これらは、デフォルトの 500 行を超えて bash 履歴を拡張するために使用されます。
HISTSIZE
bash セッションの進行中に履歴リストのメモリに保存される行またはコマンドの数です。
HISTFILESIZE
は、(a) セッションの起動時に履歴ファイルで許可され、(b) 将来のセッションで使用するために bash セッションの終了時に履歴ファイルに保存される行またはコマンドの数です。
file
: on disk - とlist
: in memoryの違いに注意してください。
上記のすべての情報 + いくつかの例:
例 1 :
HISTFILESIZE=10
およびHISTSIZE=10
histappend
、コマンド 41 から 50 が HISTFILE に保存されます。これには、最初に保持されていた 10 個のコマンドと、新しく書き込まれた 10 個のコマンドが含まれています。例 2 :
HISTFILESIZE=10
およびHISTSIZE=5
histappend
、コマンド 46 から 50 が HISTFILE に保存されます。これには、最初に保持されていた 10 個のコマンドと、新しく書き込まれた 5 個のコマンドが含まれています。例 3 :
HISTFILESIZE=5
およびHISTSIZE=10
histappend
、コマンド 41 から 50 が HISTFILE に保存されます。これには、最初に保持されていた 5 つのコマンドと、新しく書き込まれた 10 個のコマンドが含まれています。elixir_sinariからの情報:
コマンドを入力しても履歴「ファイル」は更新されません。コマンドは個別に「リスト」に保存されます (履歴コマンドによってアクセスされます)。これらの保存されたコマンドの数は、HISTSIZE 値によって制御されます。シェル (インタラクティブ) が終了すると、最後の $HISTSIZE 行がその「リスト」から $HISTFILE にコピー/追加されます。HISTFILESIZE が設定されている場合、この操作の後、 $HISTFILESIZE 行 (最新) のみが $HISTFILE に存在することが保証されます。また、シェルが開始すると、「リスト」は $HISTFILE から最大 $HISTSIZE コマンドまで初期化されます。
そしてman bash
ページから:
HISTSIZE 変数の値は、履歴リストに保存するコマンドの数として使用されます。最後の HISTSIZE コマンドのテキスト (デフォルトは 500) が保存されます。(...)
起動時に、履歴は変数 HISTFILE (デフォルト ~/.bash_history) で指定されたファイルから初期化されます。HISTFILE の値で指定されたファイルは、HISTFILESIZE の値で指定された行数以下になるように、必要に応じて切り捨てられます。(...) 対話型シェルが終了すると、最後の $HISTSIZE 行が履歴リストから $HISTFILE にコピーされます。histappend シェル オプションが有効になっている場合 (下記の SHELL BUILTIN COMMANDS の shopt の説明を参照)、行が履歴ファイルに追加されます。そうでない場合、履歴ファイルは上書きされます。HISTFILE が設定されていない場合、または履歴ファイルが書き込み不可の場合、履歴は保存されません。(...) 履歴を保存した後、履歴ファイルは HISTFILESIZE 行を超えないように切り捨てられます。HISTFILESIZE が設定されていない場合、