4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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自体は履歴に残りますが、それを差し置いても消したいコマンド履歴が大量にある時なんかに是非。

業務中に関しては「善はゆっくり、悪は急げ」です。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?