KDE Konsoleをbashターミナルとして使用して、ターミナル(タブ/アプリケーション)を閉じるときに履歴をクリアしたいと思います。Konsoleがまだ開いているとき(検索するため)にはbash履歴が必要です。ターミナルを閉じたらクリアしてもらいたいです。
端末を長時間使用し、端末を閉じる前に履歴をクリアすることがよくあります。履歴のクリアを自動化する方法を探しています。
履歴をクリアする方法や履歴を無効にする方法について同様の質問を見つけました 履歴を保存せずにターミナルを閉じる方法はありますか? しかし、自分の状況に役立つものは何も見つかりませんでした。ここでの違いは、ターミナルの実行中に履歴ファイルが必要なこと、unset HISTFILE
を設定すると、そのコマンドの実行後に履歴ファイルが無効になり、clear履歴ファイル自体。履歴ファイルはセッションの実行中に必要になりますが、セッションが終了したときにクリアする必要があることに注意してください。
ターミナルが閉じられたときにどのようにbash履歴をクリアできますか?
消去.bash_history
cat /dev/null > .bash_history
または
>.bash_history
トラップを.bashrc
に追加します
trap "history -c" EXIT
.bash_logout
ファイルを使用して、ログアウト時に実行するコマンドを指定します(詳細については、たとえば ここ を参照してください)。
bash
のドキュメント(man bash
を参照)には、これに関する履歴が含まれています。
シェル変数次の変数はシェルによって設定されます。
[...]
HISTFILE
コマンド履歴が保存されるファイルの名前[...]。デフォルト値は~/.bash_history
です。設定されていない場合、シェルの終了時にコマンド履歴は保存されません。
したがって、セッション中にコマンド履歴を許可し、保存されないようにするには、この変数の設定を解除します。これは、.bash_profile
、.profile
、または.bashrc
のいずれかまたはすべてで実行できます。
unset HISTFILE
export HISTFILE=/dev/null
古い歴史はそのままです。 .bash_historyに共有したくないパスワードやその他のデータを誤って入力したときに便利です:-)