Linuxで過去に実行したコマンドの履歴を表示できるhistoryコマンドは、履歴を見て以前実行したことがあるコマンドを思い出すのに凄く便利ですが、historyの履歴に表示したくない場合もあります。
そこで、historyの履歴を個別に削除する方法と、一括で削除する方法をご紹介します。
historyの履歴を削除するのはなぜ?
普通なら、証跡(ログ)として残す上でも、あまりhistoryの履歴を削除することはありませんが、例えば、平文のパスワード付きのコマンドを実行した場合など、historyの履歴を他人に見られては困ることもあります。
残しておくのはセキュリティ的にあまりよろしくない場合もあるということですね!
あとは、間違ったコマンドを打った時に恥ずかしいとか?
historyの履歴を個別に削除
それでは、historyコマンドの[-d]オプションを使用し、履歴から任意の1行のみを個別に削除する方法をご紹介します!
まずは、いつも通りhistoryコマンドを実行します。
1 2 3 4 5 6 7 8 |
# history 1622 ll /home/ubuntu/ 1623 vi /etc/crontab 1624 exit 1625 history 1626 history -d 1620 1627 vi ~/.bash_history 1628 history |
すると、表示されたコマンド実行履歴の左側に行番号が表示されていると思います。
この行番号を[-d]オプションのパラメーターとして実行したら、その行のみ削除されます。
例えば、上記の例で1625行目の[history]を削除すると…
1 |
# history -d 1625 |
結果はこのようになります。
1 2 3 4 5 6 7 8 9 |
# history 1622 ll /home/ubuntu/ 1623 vi /etc/crontab 1624 exit 1625 history -d 1620 1626 vi ~/.bash_history 1627 history 1628 history -d 1625 1629 history |
[history -d]の履歴は残ってしまいますが、あまり気にしない。
※ちなみに、直前のコマンド(history)と同じコマンドを実行しても履歴には残りません
historyの履歴を一括で削除
次は、historyのすべての履歴を一括削除する方法です。
これには、historyコマンドの[-c]オプションを使用しますが、確認もされずに即時削除されますので、実行する際は十分に注意してください。
1 |
# history -c |
すべて削除されますので、当然ですが結果はこのようになります。
1 2 |
# history 1 history |
historyの履歴を自由に削除
historyの履歴は、実際は単純に各ユーザー毎のhistoryファイルに書かれているだけですので、いつものようにvi(またはvim)でファイルを開いて、あとは煮るなり焼くなり二宮和也。
1 |
vi ~/.bash_history |
この方法だと、個別削除するのも、範囲削除するのも、一括削除するも自由自在ですね!
コメント