永続シェル履歴の削除

永続シェル履歴の削除

誰かがこのコマンドを使用して永続シェル履歴を削除することを提案しました。

history -c; >$HISTFILE

それが何をしているのか正確に知るまでは実行したくありません。助けてもらえますか?

ベストアンサー1

これは1つではなく区切りの2つのコマンドです;。あなたはを持っていてhistory -c、それからそれを持っています> $HISTFILE。質問に指定していないが使用すると仮定すると、コマンドがどのように機能するかを確認bashできます。このオプションの内容は次のとおりです。help historyhistory-c

  -c    clear the history list by deleting all of the entries

したがって、history -c現在のシェルセッションのすべての履歴が削除されます。

グローバル履歴は変数に保存されたファイルに保存されます$HISTFILE。デフォルトではこれは次のとおりです~/.bash_history

$ echo $HISTFILE
/home/terdon/.bash_history

Bashシェルでは、>コマンドを持たないリダイレクト演算子はファイルを空にします。たとえば、

$ echo "Hello world!" > file
$ cat file
Hello world!
$ > file
$ cat file
$ 

上に示すように、実行すると> fileファイルが消去され、実行すると> $HISTFILE履歴ファイルが消去されます。

したがって、これらすべてが結合されると、history -c; > $HISTFILE現在のシェルの履歴が消去され、ユーザーの保存された履歴もすべて削除されます。

おすすめ記事