サーバーの履歴から以前のすべてのコマンドをクリアしたい。 history -c
を使用しましたが、すべてがクリアされたようですが、サーバーにsshしても、すべてのコマンドが残っています。
永久にクリアするにはどうすればよいですか?
ファイル~/.bash_history
は履歴を保持します。
サーバー上のbash履歴を完全にクリアするには、ターミナルを開いて次を入力します。
cat /dev/null > ~/.bash_history
他の代替方法は、~/.bash_history
を/dev/null
にリンクすることです
迷惑な副作用の1つは、履歴エントリにメモリ内のコピーがあり、ログアウト時にファイルにフラッシュバックするがあることです。
これを回避するには、次のコマンドを使用します(私のために機能しました):
cat /dev/null > ~/.bash_history && history -c && exit
何をすべきか:
everyでbashシェルを開きます(複数の端末を開いている場合があります):
history -c
history -w
理由:上記のように、history -c
はファイル~/.bash_history
を空にします。 bashシェルはすぐに履歴をbash_historyファイルにフラッシュしないことに注意することが重要です。そのため、(1)履歴をファイルにフラッシュし、(2)すべての端末で履歴をクリアするが重要です。それが上記のコマンドが行うことです。
次のコマンドを実行して、履歴を永久にクリアします
history -c && history -w
幸運を!
もう1つもっと簡単な方法があります。ターミナルでhistory -c
を実行すると、プロンプトが消えてbash_history
ファイルのエントリがすべてなくなります。
これを行う別の方法は、~/.bash_history
コマンドを使用してrm ~/.bash_history
ファイルを削除することです。別の時間にログインすると、.bash_history
ファイルが自動的に作成されます。
現在のシェルの履歴をクリアします。
history -c
ログアウトすると、現在のシェルの履歴が最大数まで、以前のシェルの履歴のキャッシュである〜/ .bash_historyに追加されます(「man bash」のHISTFILESIZEを参照)。
履歴を完全に削除する場合は、上記のエントリの多くが示唆している〜/ .bash_historyを空にする必要があります。といった:
history -c && history -w
これにより、現在のシェルの履歴がクリアされ、現在のシェルの履歴(空)が強制的に〜/ .bash_history ....を上書きするか、より正確にするには、HISTFILE(デフォルトは〜/ .bash_history)を上書きします。
お役に立てれば。
rm ~/.bash_history; history -c; logout
ここでログインし直し、矢印を使用しても何も得られないことを確認します。
これを試して
.profile
を編集し、ファイルの最後に以下の行を追加します
rm -f .bash_history
この方法では、ログインするたびに、.bash_historyファイルが自動的に削除されます。 -r recursive removeオプションを追加するのは危険なようで、必要ありません。