回答:
.bashrcに空の文字列を設定HISTSIZE
しHISTFILESIZE
ます。
HISTSIZE=
HISTFILESIZE=
bash 4.3以降を使うこともできますHISTSIZE=-1 HISTFILESIZE=-1
。
n. Setting HISTSIZE to a value less than zero causes the history list to be
unlimited (setting it 0 zero disables the history list).
o. Setting HISTFILESIZE to a value less than zero causes the history file size
to be unlimited (setting it to 0 causes the history file to be truncated
to zero size).
HISTSIZE= HISTFILESIZE=
すると、少なくとも私にとっては、bashの履歴が完全に無効になります。
HISTSIZE=-1 HISTFILESIZE=-1
私の歴史を無効にしましたHISTSIZE= HISTFILESIZE=
が、トリックはしました。CentOS 7はこちら。
HISTSIZE= HISTFILESIZE=
あなたがそうするべきだというよりむしろ私が思うexport HISTSIZE=
export HISTFILESIZE=
長年にわたる多くの醜いイテレーションと奇妙なエッジケースの後、私はこれに専用の.bashrcの簡潔なセクションを用意しました。
まず、.bashrcのこのセクションをコメント化するか削除する必要があります(Ubuntuのデフォルト)。そうしないと、特定の環境(screen
セッションの実行など)で履歴が切り捨てられます。
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
次に、これを.bashrcの一番下に追加します。
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
注:すべてのコマンドは実行直後に書き込まれるため、誤ってパスワードを貼り付けた場合、履歴の書き込みを回避するために「kill -9 %%」することはできません。手動で削除する必要があります。
また、bashセッションごとに完全な履歴ファイルがメモリに読み込まれますが、履歴ファイルが10MBに増加しても(長時間かかります)、bashの起動時間への影響はそれほど気になりません。
HISTFILESIZE=
とHISTSIZE=
空白を作成し、.bashrcまたは.bash_profileまたは.profileにこれらのパラメーターの他の宣言がないことを確認してください。
.bashrc
、.bashrcによってロードされた別のファイルを後でセットアップしました... THX!
cat ~/.bash_history >>~/.bash_eternal_history
HISTFILESIZE
(そしておそらくHISTSIZE
)すぐに有効になるという事実は強調しすぎることはありません。
JörgBeyerが上で述べたように、HISTSIZE
そしてHISTFILESIZE
キーです。
さらに、環境変数を必ず確認HISTCONTROL
する必要があります。これにより、重複した履歴コマンドを保存しないようにすることができます(HISTCONTROL=erasedups
)。数百行cd ..
または類似の行を参照する必要がある場合は、無制限の履歴がある意味はありません。
リンク:こちら、およびbash履歴の操作。bash Variable FAQも参照する価値があります。
Ctrl-r
somechars Ctrl-o
Ctrl-o
Ctrl-o
Ctrl-o
。だから私は歴史の中で重複を保持しています。
Ctrl-o
ために?
Ctrl-o
はプロンプトでコマンドを実行し、履歴内の前のコマンドの直後にコマンドを表示します。1つの利点はCtrl-r
、古いコマンドの検索に使用した後(おそらく上下矢印を使用して履歴内の隣接するコマンドに移動する)、無限ループであっても、Ctrl
押し続けてo
複数回押すことで前の一連のコマンドを再度実行することで十分です。お望みならば。参照してくださいウィキペディア- GNU Readlineの
ここには(少なくとも)2つの関連する環境変数があります。
無制限という言葉は、たいてい非常に大きなものと同じであることに同意できると思います(または無制限のファイルストレージがありますか?)。したがって、値を非常に大きく設定してください。