Linuxはhistoryコマンドや上下の矢印キーで直近使用したコマンドをすぐに呼び出せるのでとても便利ですよね。
ですが、引数にパスワードをつけてコマンドを利用した時など、何らかの理由でコマンド履歴を残したくない時もあると思います。
今回はhistoryのコマンド履歴の内容を 証拠隠滅 削除する方法を紹介します。
history(コマンド履歴)の内容を修正する
historyコマンドや上下の矢印キーを押した時に表示されるコマンド履歴は~/.bash_history
ファイルに記載されているので、これを直接編集してやればよい。
ファイルを編集する
$ vi ~/.bash_history
行番号を表示
:set number
viのコマンドモード(ESCキー押した時のやつ)で上記を実行すると左側に行番号が表示される。
1行削除したい場合
dd
上記のコマンドでカーソルのある行を削除できる。
指定範囲の複数行を削除したい場合
:[Starting Line Number],[Ending Line Number]d
例えば100行目から150行目を削除したい場合は:100,150d
と打つ。
余談
historyコマンドのオプションでも履歴を消す機能はあるが使い勝手が微妙すぎる。
コマンド履歴から全ての項目を削除する
$ history -c
全て消すのは怪しすぎるし自分で使う分にも不便でしょ…。
コマンド履歴を番号指定で個別に削除する
$ history -d 番号
一見すると便利コマンドだが、これをやると今度はhistory -d 番号
がコマンド履歴に残ってしまうのでしょっぱい。
おわりに
引数にパスワードつけちゃったのを消すくらいならhistory -d 番号
でも全く問題ないと思います。
vi ~/.bash_history
自体は履歴に残りますが、それを差し置いても消したいコマンド履歴が大量にある時なんかに是非。
業務中に関しては「善はゆっくり、悪は急げ」です。