Sau nhiều lần lặp lại lớn, xấu xí và các trường hợp cạnh kỳ lạ trong nhiều năm qua, giờ đây tôi đã có một phần ngắn gọn của .bashrc dành riêng cho việc này.
Trước tiên, bạn phải nhận xét hoặc xóa phần này trong .bashrc (mặc định cho Ubuntu). Nếu bạn không, thì một số môi trường nhất định (như screen
phiên chạy ) vẫn sẽ cắt ngắn lịch sử của bạn:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000
Thứ hai, thêm phần này vào cuối .bashrc của bạn:
# 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"
Lưu ý: mọi lệnh được viết ngay sau khi chạy, vì vậy nếu bạn vô tình dán mật khẩu, bạn không thể chỉ "giết -9 %%" để tránh ghi lịch sử, bạn sẽ cần xóa thủ công.
Cũng lưu ý rằng mỗi phiên bash sẽ tải tệp lịch sử đầy đủ trong bộ nhớ, nhưng ngay cả khi tệp lịch sử của bạn tăng lên 10MB (sẽ mất nhiều thời gian dài ), bạn sẽ không nhận thấy nhiều ảnh hưởng đến thời gian khởi động bash của mình.