Setelah banyak, iterasi jelek dan kasus tepi aneh selama bertahun-tahun, saya sekarang memiliki bagian singkat dari .bashrc saya didedikasikan untuk ini.
Pertama, Anda harus mengomentari atau menghapus bagian .bashrc Anda (default untuk Ubuntu) Jika tidak, maka lingkungan tertentu (seperti screen
sesi lari ) masih akan memotong riwayat Anda:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
Kedua, tambahkan ini ke bagian bawah .bashrc Anda:
# 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"
Catatan: setiap perintah ditulis segera setelah dijalankan, jadi jika Anda secara tidak sengaja menempelkan kata sandi, Anda tidak bisa hanya "membunuh -9 %%" untuk menghindari penulisan riwayat, Anda harus menghapusnya secara manual.
Perhatikan juga bahwa setiap sesi bash akan memuat file histori lengkap dalam memori, tetapi bahkan jika file histori Anda tumbuh hingga 10MB (yang akan memakan waktu yang sangat lama ) Anda tidak akan melihat banyak efek pada waktu startup bash Anda.