bash
から問題のある行だけを削除できます 履歴全体をクリアするのではなく、 の履歴を消去します。 -d
の行を削除するだけです フラグを立ててから、新しい履歴を -w
で保存 (書き込み) します。 フラグ:
$ history
351 ssh [email protected]
352 my_password
$ history -d 352
$ history -w
これには 2 つの部分があります:
bash
履歴をファイル~/.bash_history
に保存します デフォルトでは、セッションの最後に書き込まれますhistory
記憶に残る
安全のために、セッションからクリアする必要があります:
history -c
必要に応じて履歴ファイルを切り捨てます:
> ~/.bash_history
パスワードを入力したセッションがまだ開いている場合は、痕跡を隠す別の方法があります HISTFILE
を設定することです 履歴が ~/.bash_history
に書き込まれないように、null デバイスへの変数 セッション終了時:
export HISTFILE=/dev/null
bash (少なくとも私が認識しているすべての歴史的および現在のバージョン) は、終了するまで履歴を自動的に保存しないため、保存されないようにしたいコマンドを入力したときに一般的に適用できる戦略は、すぐに次のように入力することです:
kill -9 $$
これは SIGKILL
でシェルを殺します 、キャッチできないため、シェルは終了時に何かを保存する方法がありません.
他のほとんどのアプローチでは、事後 (つまり、データが既にディスクにヒットした後) にスクラブが行われます。これは、特にシステムが btrfs などを使用している場合に、エラー (コピーの欠落) の可能性が高くなります。