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

この変数をうまく使うことで、一部コマンド履歴から削除し、削除した履歴を残さない。
といったこともできるかと思います。

※状況によって使用には十分注意してください。