パスワードを打ち込んでエンターしてしてしまった。
パスワードなど、履歴を残したくない文字列を履歴に残してしまった場合。
たまに、やらかしますよね。複数ウインドウでフォーカスが違ってたとか。
takuya@:~$ 'MyP@$$word' -bash: MyP@$$word: コマンドが見つかりません
ログアウトすると、パスワードが履歴に残ってしまいます。
takuya@:~$ history 1844 history -d 1840 1845 ll -al | grep hist 1846 history 1847 'MyP@$$word' 1848 history
指定した行だけ消せます。
history -d 1847 history -w
パスワードなど記録に残したくないコマンドの履歴を削除(?)して、historyファイル を更新しています。
その他の方法
history -r rm .bash_history vim .bash_history
もちろん、 vim .bash_histrory をしてもいいのですが、vim を使ったことがバレてしまう!!
たいていは削除をしたがると思うのですが、履歴はその場でファイルに書き込まれているとは限りません。
history -r で保存するより先に、履歴をファイルから読み直すとかもありです。
履歴の考え方。
bash の設定にもよりますが、ヒストリは、環境変数と書き込みタイミングが設定次第で変えられます。
基本的にはログアウトした瞬間に書き込まれます。
shopt の histappend を設定していると、削除して保存は無く追記になります。
$HISTSIZE に指定した件数分が起動中にbash に保存されます。
$HISTFILESIZEに指定した件数分が ファイル保存されます。
$HISTFILE に指定したファイルに書き込まれます。
ファイルに書き込んだ履歴を呼び出すには history -r です。
この辺をうまく組み合わせると、保存せずにログアウトもできます。
保存先を /dev/null とかメモリにするとか。HISTSIZEをゼロにするとか。ですかね