私はLinux Mint 17.1 Rebeccaを約2日間使用し、誤って端末にパスワードを入力しましたが、以前に入力したコマンドの履歴リストにパスワードが表示されます。
端末履歴を完全に消去したいです。ターミナルで次のコマンドを試しましたが、記録が永遠に消去されると思いましたが、そうではありません。
history -c
reset
tput reset
上記のコマンドは、端末で履歴を「消去しますが」終了し、新しい履歴を開くと、以前の履歴がすべて残ります。再リストします。私の記録を完全にクリアしてから使い続けたいです。
端末履歴を完全に消去して再開するにはどうすればよいですか?
注:履歴を保存せずに端末を終了したくありません。この場合は、記録を完全に消去してください。
答え1
reset
またはtput reset
単に端末で作業してください。履歴は完全にシェルによって管理され、影響を受けません。
history -c
現在のシェルから履歴を消去します。パスワードを入力してシェルを終了していない場合、または履歴を明示的に保存していない場合はこれで十分です(ただし少し過剰です)。
Bashを終了すると、デフォルトでは.bash_history
ホームディレクトリにある履歴ファイルに履歴が保存されます。より正確には、現在のセッション中に作成された履歴レコードがファイルに追加されます。既存のアイテムは影響を受けません。現在のシェルの履歴で履歴ファイルを上書きするには、を実行しますhistory -w
。
.bash_history
すべての履歴エントリを削除する代わりに、エディタで開いたままにしたくない行を削除できます。 Bashでもこれを行うことができますが、history
show allエントリを使用してからhistory -d
不要なエントリを削除して最後に保存すると、あまり便利ではありませんhistory -w
。
パスワードを読み取った複数のbashインスタンスが実行されている場合、各インスタンスはパスワードを再保存できます。最後に、履歴ファイルからパスワードを消去する前に、実行中のすべてのシェルインスタンスでパスワードが消去されていることを確認してください。
履歴ファイルを編集した後も、以前のバージョンのファイルからディスクにパスワードが残っている可能性があります。もはやファイルシステムを介して検索することはできませんが、ディスクに直接アクセスしてまだ見つけることができます(たぶん簡単ではありません)。このパスワードを他の場所で使用し、ディスクが盗まれたり、誰かがディスクにアクセスしたりすると、問題が発生する可能性があります。
答え2
私は履歴-cを試しましたが、終了して再度開くと、履歴が再び表示されます。これは私に役立ちます。
cat /dev/null > ~/.bash_history && history -c && exit
履歴ファイルに保存されている履歴と現在のセッションの履歴の両方を削除します(bash
終了時にファイルに保存されないように)。その後、シェルを終了します。次のシェルセッションには履歴がありません。
答え3
すべての履歴エントリを削除する代わりに、端末に次のコマンドを入力します。
history -c
(記録削除用)history -w
(記録保存)
答え4
同じ問題に直面した初心者として、私は履歴ファイルを削除して再生成するかなり残酷な回避策を使用しました。
rm .bash_history
touch .bash_history
それは私が知っている不快な副作用を引き起こさずに私に効果的でした。