По какой-то причине я не могу заставить мою систему сохранять историю BASH после перезагрузки. Вот соответствующие разделы моего ~/.bashrc:
shopt -s histappend
PROMPT_COMMAND='history -a; updateWindowTitle'
export HISTCONTROL=ignoredups
export HISTSIZE=9999
export HISTFILESIZE=999999
export HISTFILE="$HOME/.bash_history"
Насколько я могу судить, это все необходимые опции (я знаю, что раньше у меня была возможность вести историю по нескольким перезагрузкам без всего этого в прошлом). Однако, несмотря на добавление этих параметров несколько перезагрузок назад, я все еще теряю большую часть своей истории после перезагрузки. Он не пустой, но в нем нет 9999 строк, которые были у меня до перезагрузки.
Прежде чем кто-то пожалуется, да, я прочитал эти вопросы. Я реализовал некоторые из их предложений, перечисленных выше, остальные были либо бесполезны, либо не актуальны:
- Потеря истории Bash при использовании histappend
- Как не дать Bash изменить историю?
- Что определяет, что появляется в команде bash history?
- Как мне сохранить историю bash между сеансами?
- сохранить историю Bash, регулярно
Если есть вероятность, что там будут другие релевантные команды, вы можете просмотреть весь мой ~/.bashrc здесь.
Итак, что мне не хватает? Почему моя история не сохраняется? Если кто-то думает, что другой файл может быть уместным, дайте мне знать, и я опубликую его. Я проверил, запустив grep -i hist \.* В моем $HOME который показал, что это единственно актуально . файл, содержащий hist или HIST был .bashrc .
Я использую Linux Mint Debian Edition, GNU bash, версия 4.2.36(1) -релиз (x86_64-pc-linux-gnu), и мой любимый эмулятор терминала (в случае необходимости) - terminator .
ОБНОВИТЬ:
Следуя предложению @ mpy в комментариях, я изменил свой ~/.bashrc установив HISTFILE=~/bash_history в отличие от стандартного ~/.bash_history и это, похоже, решает проблему для интерактивных оболочек. Оболочки входа в систему по-прежнему отображают то же поведение, при этом история усекается до 500 строк. Однако в соответствующих файлах не установлены переменные, связанные с HIST :
$ for f in /etc/profile ~/.profile ~/.bash_profile ~/.bash_login; do \
echo -ne "$f :"; echo `grep HIST $f`; \
done
/etc/profile :
/home/terdon/.profile :grep: /home/terdon/.profile: No such file or directory
/home/terdon/.bash_profile :grep: /home/terdon/.bash_profile: No such file or directory
/home/terdon/.bash_login :grep: /home/terdon/.bash_login: No such file or directory
$ grep -r HIST /etc/profile.d/ <-- returns nothing
Итак, почему установки HISTSIZE и HISTFILESIZE в ~/.bashrc недостаточно, если я явно не установлю для $HISTFILE значение, отличное от значения по умолчанию ~/.bash_history?

