コマンドを履歴(history)に保存しない

万が一の時に備える

rmコマンドなどの破壊的コマンドを履歴に保存していて、誤ってファイルを削除してしまったりしないように対策。

zshの場合

.zshrcに下記を記述すればok

  • rmを使う場合、先頭に空白を挿入
    alias rm=' rm -i'
  • 先頭に空白があるコマンドを履歴に保存しない
 setopt hist_ignore_space

bashの場合

.bashの場合、「alias rm=' rm -i'」としても、先頭の空白がエスケープされてしまい、うまくいかない。 なので、2パターン対応方法が考えられる。

パターン1:破壊的コマンドを使用する際に、必ず先頭行に空白を入れるようにする

この場合、.bashrcには下記を記述すればok

  • 先頭に空白があるコマンドを履歴に保存しない
    export HISTCONTROL=ignorespace
パターン2:破壊的コマンドを正規表現で履歴から除く

この場合、下記のように.bashrcに記述すればok

  • 正規表現に一致するコマンドを履歴に保存しない
    export HISTIGNORE=rm*

※ この場合、「sudo rm」は履歴に保存されてしまうので、下記のように記述してあげれば良い

    export HISTIGNORE=rm*:'sudo rm*'

以上です。

最後までお読み下さり、ありがとうございました。

誤っている部分がありましたら、ご指摘頂けますと幸いです。