web-dev-qa-db-ja.com

端末を閉じるときにbash履歴をクリアするにはどうすればよいですか?

KDE Konsoleをbashターミナルとして使用して、ターミナル(タブ/アプリケーション)を閉じるときに履歴をクリアしたいと思います。Konsoleがまだ開いているとき(検索するため)にはbash履歴が必要です。ターミナルを閉じたらクリアしてもらいたいです。

端末を長時間使用し、端末を閉じる前に履歴をクリアすることがよくあります。履歴のクリアを自動化する方法を探しています。

履歴をクリアする方法や履歴を無効にする方法について同様の質問を見つけました 履歴を保存せずにターミナルを閉じる方法はありますか? しかし、自分の状況に役立つものは何も見つかりませんでした。ここでの違いは、ターミナルの実行中に履歴ファイルが必要なこと、unset HISTFILEを設定すると、そのコマンドの実行後に履歴ファイルが無効になり、clear履歴ファイル自体。履歴ファイルはセッションの実行中に必要になりますが、セッションが終了したときにクリアする必要があることに注意してください。

ターミナルが閉じられたときにどのようにbash履歴をクリアできますか?

2
origami
  1. 消去.bash_history

    cat /dev/null > .bash_history
    

    または

    >.bash_history
    
  2. トラップを.bashrcに追加します

    trap "history  -c" EXIT
    
5
Jonah

.bash_logoutファイルを使用して、ログアウト時に実行するコマンドを指定します(詳細については、たとえば ここ を参照してください)。

8
bat

bashのドキュメント(man bashを参照)には、これに関する履歴が含まれています。

シェル変数次の変数はシェルによって設定されます。

[...]

HISTFILEコマンド履歴が保存されるファイルの名前[...]。デフォルト値は~/.bash_historyです。設定されていない場合、シェルの終了時にコマンド履歴は保存されません。

したがって、セッション中にコマンド履歴を許可し、保存されないようにするには、この変数の設定を解除します。これは、.bash_profile.profile、または.bashrcのいずれかまたはすべてで実行できます。

unset HISTFILE
6
roaima

export HISTFILE=/dev/null

古い歴史はそのままです。 .bash_historyに共有したくないパスワードやその他のデータを誤って入力したときに便利です:-)

1
DevilaN