誰かがこのコマンドを使用して永続シェル履歴を削除することを提案しました。
history -c; >$HISTFILE
それが何をしているのか正確に知るまでは実行したくありません。助けてもらえますか?
ベストアンサー1
これは1つではなく区切りの2つのコマンドです;
。あなたはを持っていてhistory -c
、それからそれを持っています> $HISTFILE
。質問に指定していないが使用すると仮定すると、コマンドがどのように機能するかを確認bash
できます。このオプションの内容は次のとおりです。help history
history
-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
現在のシェルの履歴が消去され、ユーザーの保存された履歴もすべて削除されます。