時々、 のようなコマンドを実行するときにrm -rf XYZ
、 によって誤って同じコマンドを再度実行してしまう可能性があるため、これを Bash 履歴に記録したくないことがありますreverse-i-search
。これを防ぐ良い方法はありますか?
ベストアンサー1
HISTCONTROL
環境変数を に設定した場合ignoreboth
(通常はデフォルトで設定されます)、先頭にスペース文字があるコマンドは履歴に保存されません (重複も同様)。
例えば:
$ HISTCONTROL=ignoreboth
$ echo test1
$ echo test2
$ history | tail -n2
1015 echo test1
1016 history | tail -n2
ここにman bash
書いてあるのは:
ヒストコントロール
コマンドを履歴リストに保存する方法を制御するコロンで区切られた値のリスト。値のリストに
ignorespace
、スペース文字で始まる行は履歴リストに保存されませんの値は、ignoredups
前の履歴エントリに一致する行を保存しません。 の値は、およびignoreboth
の省略形です。 の値は、現在の行を保存する前に、その行に一致する以前のすべての行を履歴リストから削除します。上記のリストにない値はすべて無視されます。 が設定されていないか、有効な値が含まれていない場合、シェルパーサーによって読み取られたすべての行は、 の値に従って履歴リストに保存されます。複数行の複合コマンドの 2 行目以降はテストされず、 の値に関係なく履歴に追加されます。ignorespace
ignoredups
erasedups
HISTCONTROL
HISTIGNORE
HISTCONTROL
参照: