bashログインセッションの履歴を「自動保存」するにはどうすればよいですか? [コピー]

bashログインセッションの履歴を「自動保存」するにはどうすればよいですか? [コピー]

~/.bash_history私が正確に覚えている場合、bashは終了時にログインシェルセッションに履歴を保存します。$HISTFILEしかし - シェルが早期に終了するのを心配しているので(SIGKILLや停電など)時々これに固執したい場合はどうすればいいですか?システムやシェルセッションの経験に負担をかけずにこれを達成できますか?

ベストアンサー1

デフォルトでは、Bashはシェルを終了したときに履歴を保存します。したがって、異常終了すると、現在の記録が失われます。

次のコマンドを実行して、現在の Bash 履歴を保存できます。

$ history -a

これを知っていると、各実行されたコマンドの後に実行され、Bashに各実行されたコマンドの後に履歴を保存させることができますhistory -a。 1つの方法は、Bashプロンプトを使用することです。

PROMPT_COMMAND='history -a'

これは、Bashプロンプトが各新しいプロンプトで実行されるために機能します$PS1$PROMPT_COMMAND

以下は、私がこのアイデアについて考えた素晴らしいブログ投稿です。https://sanctum.geek.nz/arabesque/better-bash-history/

おすすめ記事