Linuxのhistoryを綺麗に削除する
Linux上で実行したコマンドは、メモリ上に保存され、ログアウト時に.bash_history ファイルに出力されます。
.bash_history のパスは以下となります。
$HOME/.bash_history
では、履歴をきれいに削除する方法を記載していきます。
履歴からコマンドを綺麗に消す
履歴から実行したコマンドを消すにはどうしたらよいかですが、コマンドを削除するということは、 .bash_historyから削除するということになります。
以下のように、コマンドを入力した後に.bash_historyを削除してもメモリ内のコマンド履歴は消えていないため、不十分です。
# 以下のコマンドは、現時点ではメモリに保存されている
[root@local ~]# ls
[root@local ~]# vi test
[root@local ~]# cat
[root@local ~]# history
1 ls
2 vi test
3 cat test
4 history
# .bash_historyを出力しても履歴には何もない
[root@local ~]# cat .bash_history
# この時点で.bash_historyを消してもダメ
[root@local ~]# rm .bash_history
[root@local ~]# exit
# 再度ログイン
[root@local ~]# history
1 rm .bash_history
2 exit
3 hisotry
historyにあるコマンド群を消した場合、消すために実行したrmコマンドがメモリ上に保存され、ログアウト時に保存されてしまします。
historyを綺麗に消すためには、HISTSIZE環境変数を設定します。
※HISTSIZEは保存する実行コマンドの最大数を指定する環境変数です。
# コマンド保存最大数を0に設定
[root@local ~]# export HISTSIZE=0
[root@local ~]# rm .bash_history
[root@local ~]# exit
# 再度ログイン
# 履歴がすべてなくなっている
[root@local ~]# history
1 history
この変数をうまく使うことで、一部コマンド履歴から削除し、削除した履歴を残さない。
といったこともできるかと思います。
※状況によって使用には十分注意してください。
-
前の記事
DockerにVolumeをマウントしたら、権限で怒られた 2017.02.02
-
次の記事
EC2インスタンスでnetworkが起動しなかった 2019.09.03