bash で無限のコマンド履歴を取得するにはどうすればいいですか?

bash で無限のコマンド履歴を取得するにはどうすればいいですか?

設定しましたexport HISTSIZE=99999999999999が、これが最善の方法でしょうか? オーバーフローが発生するかどうかはわかりません。コマンド履歴の制限を削除するための、テスト済みの信頼性の高い方法を探しています。

答え1

その通りない(十分に)文書化されており、この計画では bash ユーザーの 99% が HISTSIZE を非常に大きな数値に設定すると思われます。

GNU bash では、履歴は強力な readline ライブラリによって処理されます。ライブラリには、履歴のサイズを制限する (readline の専門用語では「stifle」) か制限しないかのオプションがあり、bash は単に readline 履歴を stifled/unstifled に設定します。たとえば、GNU bash バージョン 4.2、ファイル variables.c、行 4443、関数 void sv_histsize (char*) を調べると、次のコメント (およびそれに続く関数の stifling/unstifling 全体) が見つかります。

/* HISTSIZE または HISTFILESIZE 変数が変更された後に行う処理。
この HISTSIZE に値がある場合 (数値の場合)、履歴を抑制します。それ以外の場合、この変数に値がない場合、履歴を
抑制解除します。name が HISTFILESIZE で、その値が
数値の場合、履歴ファイルを切り捨てて、その行数を超えないようにします
。 */

これでうまくいくはずです:

export HISTSIZE=""

また、これも(反抗的な気持ちがある場合):

export HISTSIZE="GOTCHA"

お役に立てれば。

関連情報