Bashの履歴にすべてのコマンドを保持しますか?

Bashの履歴にすべてのコマンドを保持しますか?

私は反対の問題がありますこれ。 bashの履歴にすべてのコマンドを保持する方法は?

Ubuntuでかなり長い間bashのデフォルトは、失敗した終了コードを持つコマンドを忘れてしまったことでした。

Unixユーザー@金貨花たぶん私が混乱している可能性があることを指摘してください2つの指示を無視してください

パイセット

答え1

FWIWは、HISTFILE=~/.bash_history_$(date '+%Y%m%d_%H_%M_%S_%N').txt各セッションのタイムスタンプ履歴ファイルを生成するために.bashrcファイルを使用しています。これにより、コマンドを押す$HISTSIZEとコマンドが失われません。history現在のターミナルセッションのコマンド履歴のみが表示されますが、以前のbash履歴は簡単に検索できます。grep 'what to find' .bash_history*

答え2

HISTCONTROL=ignoreboth私の考えでは、あなたが混乱していると思います。なぜなら。ねえ:http://www.linuxjournal.com/content/using-bash-history-more-efficiently-histcontrol

答え3

私はあなたがやっていると思うことをしていないと思います。 frobizを実行して履歴にあることを確認してください。 Frobizは通常失敗します。そのようなコマンドはありません。しかしそれはあなたの歴史に記録されます。私疑うls *![0-9] のようなものを試していますが、失敗します。

ls !(*.[0-9])
base ![0-9]": event not found

問題は、これが失敗した場合、bashはコマンドを実行しようとしないため、履歴に書き込まれないことです。 IGNOREBOTHはこれとは何の関係もありません。広告されたとおりに機能します。脱出してみてください! (つまり、シェルは履歴のコマンドを参照します。) - 例:

ls \! ...

期待どおりに動作できます。

関連情報