GNU/Linux >> Linux の 問題 >  >> Linux

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

場合によっては (いくつかの bash バージョン)、以下を実行します:

$ history -c; history -w

または単に

$ history -cw

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

ときどきバッシュでしないことを選択する $HISTFILE を切り捨てます histappend でもファイル オプションが設定されておらず、$HISFILEZIZE 0 に設定します。

そのような場合、nuke オプションは常に機能します:

history -c; >$HISTFILE

これにより、メモリに記録されたコマンドの履歴リストと、以前にファイルに記録されたすべてのコマンドがクリアされます。これにより、実行中のシェルの履歴がメモリまたはディスクに記録されないことが保証されますが、実行中の bash の他のインスタンス (履歴がアクティブな場所) には、$HISTFILE から読み取られたコマンドの完全なコピーが含まれる場合があります。 bash が開始されたとき (または history -r 実行されます)。

また 現在のセッションの他の何も (新しいコマンドがない) が履歴ファイルに書き込まれないことを要求した場合、 unset HISTFILE


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

HISTFILE が指すファイルを削除すると 、その変数の設定を解除し、bash を終了します。 の場合、そのシェル セッションは永続的な履歴を残しません。

HISTFILE の設定解除に失敗しました 変数ですが、ファイルを削除すると永続的な履歴が空になりますが、現在のセッションの履歴はシェルの終了時に保存されます。


Linux
  1. LinuxでBashの履歴をクリアする方法

  2. 履歴を参照すると、Bashプロンプトがバグになるのはなぜですか?

  3. なぜCdはプログラムではないのですか?

  1. Nullglobがデフォルトではないのはなぜですか?

  2. Bash翻訳ファイルにすべてのエラーテキストが含まれていないのはなぜですか?

  3. バッシュ履歴の自動クリーンアップ?

  1. Bash履歴コマンドの使用方法

  2. Bash の配列が見つかりません

  3. なぜ ICMP をブロックしないのですか?