Bashがコマンド履歴を更新して消去できるようにするにはどうすればよいですか?

Bashがコマンド履歴を更新して消去できるようにするにはどうすればよいですか?

誤ってコマンドラインにパスワードを入力して、Bashシェルの履歴を消去する必要があります。これは簡単ですecho "" > ~/.bash_history

.bash_logoutもし備えて私のものも同じように追加しました。ところで、ログアウト/ログイン後に履歴を確認してみると、最後に入力した命令が履歴ファイルに残ります。より正確には、最後に入力したコマンドとexitログアウトしたときのコマンドの2つがあります。

ログアウト時にクリアできるように、Bashにコマンド履歴をファイルにフラッシュさせるにはどうすればよいですか?

ベストアンサー1

Bashは、終了するか明示的に呼び出すまで履歴ファイルに書き込みを書き込みませんhistory -w。したがって、現在のシェルの記録にパスワードを追加した場合は、まだ記録されておらず、.bash_historyメモリに残っているだけです。実行してfc -l最近のコマンドのリストを確認し、history -dエントリを削除できます。

$エコメカジキ
コウノトリ
ああ、それは私のパスワードです!
$fc -l -2
1234話
1235 エコセイル
$履歴-d 1235
$fc -l -3
1234話
1235
1236 歴史-d 1236

すでに履歴ファイルを作成している場合(たとえば、history -wデバッグPROMPT_COMMANDトラップがある場合)、それを実行して編集します.bash_history

現在のシェルの履歴を完全に忘れるには、設定を解除し、HISTFILEシェルが終了するまで設定されていないことを確認してください。現在までの記録を忘れて録音を開始したい場合は、これを呼び出すことができますhistory -c。最後の3つの履歴項目を除くすべての項目を削除するには、その項目を設定してからHISTFILE=3(別のコマンドラインから)再び通常の値に設定します。

おすすめ記事