web-dev-qa-db-ja.com

bashの履歴を完全にクリアする方法は?

サーバーの履歴から以前のすべてのコマンドをクリアしたい。 history -cを使用しましたが、すべてがクリアされたようですが、サーバーにsshしても、すべてのコマンドが残っています。

永久にクリアするにはどうすればよいですか?

252
hd.

ファイル~/.bash_historyは履歴を保持します。

サーバー上のbash履歴を完全にクリアするには、ターミナルを開いて次を入力します。

cat /dev/null > ~/.bash_history

他の代替方法は、~/.bash_history/dev/nullにリンクすることです

しかしながら、

迷惑な副作用の1つは、履歴エントリにメモリ内のコピーがあり、ログアウト時にファイルにフラッシュバックするがあることです。

これを回避するには、次のコマンドを使用します(私のために機能しました):

cat /dev/null > ~/.bash_history && history -c && exit
328
devav2

何をすべきか:

everyでbashシェルを開きます(複数の端末を開いている場合があります):

history -c
history -w

理由:上記のように、history -cはファイル~/.bash_historyを空にします。 bashシェルはすぐに履歴をbash_historyファイルにフラッシュしないことに注意することが重要です。そのため、(1)履歴をファイルにフラッシュし、(2)すべての端末で履歴をクリアするが重要です。それが上記のコマンドが行うことです。

参照: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/ =

140
callpraths

次のコマンドを実行して、履歴を永久にクリアします

history -c && history -w

幸運を!

56
Edwin Jose

もう1つもっと簡単な方法があります。ターミナルでhistory -cを実行すると、プロンプトが消えてbash_historyファイルのエントリがすべてなくなります。

20
Peter Eijlander

これを行う別の方法は、~/.bash_historyコマンドを使用してrm ~/.bash_historyファイルを削除することです。別の時間にログインすると、.bash_historyファイルが自動的に作成されます。

10
Anwar

現在のシェルの履歴をクリアします。

history -c

ログアウトすると、現在のシェルの履歴が最大数まで、以前のシェルの履歴のキャッシュである〜/ .bash_historyに追加されます(「man bash」のHISTFILESIZEを参照)。

履歴を完全に削除する場合は、上記のエントリの多くが示唆している〜/ .bash_historyを空にする必要があります。といった:

history -c && history -w

これにより、現在のシェルの履歴がクリアされ、現在のシェルの履歴(空)が強制的に〜/ .bash_history ....を上書きするか、より正確にするには、HISTFILE(デフォルトは〜/ .bash_history)を上書きします。

お役に立てれば。

7
mobiGeek
rm ~/.bash_history; history -c; logout

ここでログインし直し、矢印を使用しても何も得られないことを確認します。

6
stolsvik

これを試して

.profileを編集し、ファイルの最後に以下の行を追加します

rm -f .bash_history

この方法では、ログインするたびに、.bash_historyファイルが自動的に削除されます。 -r recursive removeオプションを追加するのは危険なようで、必要ありません。

0
Mixed IT Prof