無制限の Bash 履歴 [closed] 質問する

無制限の Bash 履歴 [closed] 質問する

ファイルを無制限にしたいです.bash_history。たとえば、いつでも戻って、何かを構築/構成した方法、あの気の利いたコマンドは何だったか、数週間前に何らかのコマンドが何かを壊した方法を確認できるようにします。この設定を変更するにはどうすればよいですか?

ベストアンサー1

何年もかけて多くの大規模で醜い反復と奇妙なエッジケースを経て、私は今、簡潔なセクションを持っています。私の.bashrcこれに専念します。

まず、このセクションを.bashrcコメントアウトまたは削除する必要があります(Ubuntu のデフォルト)。そうしないと、特定の環境 (実行中のscreenセッションなど) で履歴が切り捨てられてしまいます。

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000

次に、.bashrc の末尾に以下を追加します。

# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

注意:すべてのコマンドは実行後すぐに書き込まれるため、誤ってパスワードを貼り付けた場合は、kill -9 %%履歴の書き込みを回避するために「 」を入力するだけでは不十分で、手動で削除する必要があります。

また、各 bash セッションでは完全な履歴ファイルがメモリに読み込まれますが、履歴ファイルが 10 MB にまで大きくなっても (非常に長い時間がかかります)、bash の起動時間に大きな影響は見られません。

おすすめ記事