1. ホーム
  2. bash

[解決済み] Bashの履歴にコマンドを表示させないようにするには?

2022-10-03 20:18:01

質問

時々、以下のようなコマンドを実行すると rm -rf XYZ のようなコマンドを実行したとき、Bashの履歴に記録されたくないことがあります。 reverse-i-search . これを防ぐ良い方法はないでしょうか?

どのように解決するのですか?

を設定した場合 HISTCONTROL 環境変数を ignoreboth (通常はデフォルトで設定されています) に設定すると、 先頭のスペース文字を含むコマンドは (重複と同様に) 履歴に保存されなくなります。

例えば

$ HISTCONTROL=ignoreboth
$ echo test1
$  echo test2
$ history | tail -n2
 1015  echo test1
 1016  history | tail -n2

以下は man bash に書かれています。

ヒストコントロル

コロンで区切られた値のリストで、コマンドが履歴リストにどのように保存されるかを制御します。 もし値のリストが ignorespace , で始まる行は履歴のリストに保存されません。 . の値は ignoredups の場合、直前の履歴と一致する行は保存されません。 値 ignorebothignorespaceignoredups . の値は erasedups を指定すると、現在の行にマッチする全ての前の行が、その行が保存される前に履歴リストから削除されます。 上記のリストにない値は無視されます。 もし HISTCONTROL が設定されていないか、有効な値が含まれていない場合、 シェルパーサーが読み込んだすべての行が履歴リストに保存されます。 HISTIGNORE . 複数行の複合コマンドの 2 行目以降の行はテストされずに HISTCONTROL .

こちらもご覧ください。