bash 履歴に特定のコマンドが保存されないように除外

bash 履歴に特定のコマンドが保存されないように除外

bash履歴に保存されているrm -rfようなコマンドを除外する方法はありますか?svn revert事実、私が急いで仕事をしたところ、そのようなことが起こって意図しなかったにもかかわらず、誤って文を載せたことが何度もありました。これにより、これまでに行った作業の多くが失われました。

答え1

おそらく、あなたは$HISTIGNORE「履歴リストに保存するコマンドラインを決定するために使用されるコロンで区切られたパターンのリスト」が欲しいでしょう。 ~/.bashrc のこの行はこれを行う必要があります。

HISTIGNORE='rm *:svn revert*'

コマンドの先頭にスペースを追加して履歴から除外することもできます。これは、私が使用したすべてのディストリビューションのデフォルト値または$HISTCONTROL含まれている限り機能します。ignorespaceignoreboth

答え2

OPの質問とは少し異なりますが、意図的にコマンドがbash履歴に保存されたくない場合は、コマンドの前にスペースを追加します。 Ubuntuとそのバリエーションで動作しますが、すべてのシステムで動作するかどうかはわかりません。

答え3

私は歴史的に起こりたくないことをするとき、通常bashインスタンスを終了します。

kill -9 $$

$$は、シェルでbashを実行したときの現在のプロセスを表します。 $BASHPIDを使用できますが、より多くの入力が必要です:-)

関連情報