Bashの履歴を削除するだけでは十分ではないのはなぜですか?

Bashの履歴を削除するだけでは十分ではないのはなぜですか?

バッシュ記録を削除すれば、バッシュ記録が消えるだけで十分だと思いました。 。 .bash_historyを削除した後も、UPARROWキーが私のbash履歴を表示することがわかりました。

Bashの履歴を実際にどのように削除できますか?

答え1

場合によっては(特定のbashバージョン)、次の操作を行います。

$ history -c; history -w

または単に

$ history -cw

メモリの書き込みを消去し(上矢印と下矢印に表示するコマンドはありません)、書き込みを実行します。それ$HISTFILEファイルに追加します($HISTFILE実行中のbashインスタンスによって切り捨てられた場合)。

時にはbashが選択します。いいえ$HISTFILEhistappendオプションが設定されておらず、$HISFILEZIZE0に設定されていてもファイルは切り捨てられます。

この場合、nuke オプションは常に有効です。

history -c; >$HISTFILE

メモリに書き込まれたコマンド履歴のリストと、以前にファイルに書き込まれたすべてのコマンドを消去します。これにより、実行中のシェルにはメモリやディスクに書き込まれた書き込みはありませんが、他の実行中のbashインスタンス(記録が有効になっている)には、$HISTFILEbashが起動したとき(またはhistory -rコピーしたとき)に読み取った完全なコマンドセットを持つことができます。

の場合返品現在のセッションを必要とする他のエントリ(新しいコマンドなし)は履歴ファイルに書き込まれず、unset HISTFILEそのようなロギングはブロックされます。

答え2

bash終了時にシェル変数がHISTFILEファイル名に設定されている場合、ファイルに書き込まれるセッション履歴はメモリにあります。bash

指定されたファイルを削除しHISTFILEて変数を設定解除してから終了すると、bashシェルセッションは継続的な履歴を残しません。

HISTFILE変数の設定を解除せずにファイルを削除すると、永続履歴のみが消去されますが、現在のセッションの履歴はシェルの終了時に保存されます。

答え3

同様の問題が発生し、次の2つのコマンドを実行してbash履歴を削除しました。

  1. $ history -c
  2. $ cat /dev/null > ~/.bash_history

次に、すべての端末を終了し、新しい端末を起動したことを確認し、上矢印ボタンを押したときに履歴コマンドを表示しないでください。

答え4

ファイルマネージャを開き、隠しファイルを表示を選択します。ホームフォルダで見つけます.bash_history。テキストエディタを使用して開きます。ファイルの内容を削除します。ミッション完了。

関連情報