Bashの追加履歴を停止する方法


9

Bashのターミナル履歴を思い通りに設定するのに多くの問題を抱えています。重複するエントリを残したくないので、コマンドを入力した場合、それを保存して、上記の重複を削除します。

問題は、historyコマンドが希望どおりに機能していることをコマンドが示していることですが、ログアウトすると、重複が再び表示されます。それは単に既存のものに履歴を追加しているだけだと思います。私の.bashrcファイルには次の行があります:

HISTCONTROL=ignoreboth:erasedups
shopt -u histappend

コメントを外してみましたshoptが、ログアウト時に履歴が追加されます。ログアウトする前の履歴を正確に保持するにはどうすればよいですか?


2
ここで良い説明があります:unix.stackexchange.com/questions/18212/...
jasonwryan

回答:


7

erasedupsあなたが重複に関して欲しいものを行う必要があります-重複を消去することをちょうどノートは歴史に新しいエントリを追加した瞬間に、それはちょうど最新のを残して、コマンドのすべての古い出現を消去することをトリガされます。


ログアウトする前に、どのようにして履歴を正確に保つことができますか?」という質問に答えます。

私の見たところ、これはたまにしか役に立ちません。(それ以外の場合は、なぜ履歴を使用するのですか?)

history -c; history -r

これにより、現在メモリに保持されているすべての履歴エントリがクリアされ、history-fileから履歴全体が再度読み込まれます。したがって、現在のシェルセッションにログインしてから発行したすべてのコマンドは忘れられます。多くのテストを行って(多くの類似コマンドはあるが、実際には重複していない)状況で非常に便利であることがわかり、履歴がそれによってガラクテッドになりたくないので、自分の中にエイリアスを持ってい.bashrcます:

alias hrr='history -c; history -r'

hrr「履歴再読」として記憶される)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.