2012年3月19日月曜日

bashでコマンド履歴を残さない方法

bashでコマンド履歴を残さない方法


bashは過去に実行したコマンドを履歴として残しているので、履歴をさかのぼり過去に実行したコマンドをそのまま実行したり、すこし直して実行することができます。
しかし、この機能は rm などのファイルを削除したりするようなコマンドを、履歴から簡単に実行できます。ですから大切なファイルを消してしまったりするようなミスを誘発する恐れがあります。


そのようなミスを起こさないように「特定のコマンドだけ履歴(つまり.bash_history)に残さない」方法があります。


以下の内容を .bashrcに追記します。




export HISTIGNORE=‘rm:mv’


こうすると、履歴に残したくないコマンドを環境変数HISTIGNOREに設定できます。
複数のコマンドを:(コロン)でコマンドを区切ることで設定することが可能です。
上記の例では rm と mv を履歴に残さないようにしています。


実際に試してみるます。


$ history -c
$ clear
$ touch foo
$ ls
$ mv foo bar
$ ls
$ history



スクリーンショットようにrmコマンドはhistoryには残っていません。
実行前にコマンドを確認しないで、うっかり履歴からrmコマンドで必要なファイルを消してしまった、というようなオペレーションミス対策になる得ると思うので、重要なサーバではぜひ設定してみると良いと思います。

0 コメント: