Причина, по которой история кажется вам ненадежной, заключается в том, что она записывает в историю только в конце сеанса BASH, поэтому вы можете потерять команды.
В моем профиле bash есть несколько вещей:
HISTFILESIZE=10000 # how many lines of history to store in the history file
HISTSIZE=10000 # how many lines of history to store in a session ( I think )
HISTCONTROL=ignoredups # ignore duplicate commands
shopt -s histappend # append history, rather than having sessions obliterate existing history
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Последние несколько являются важными, установка PROMPT_COMMAND
с помощью history -a
сделает историю добавленной немедленно, а не после сеанса. А установка shopt -s histappend
сделает сеансы bash добавленными в файл истории, а не перезаписывает существующие истории.
Дополнительная информация: http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html
Кроме того, если это полезно для вас, вы можете изменить имя файла истории, который вы используете для определенного сеанса bash, с помощью переменной среды HISTFILE
.