Я работаю на цели x86 под управлением Fedora 9.
Всякий раз, когда я перезагружаю его, моя история возвращается в какое-то состояние, и у меня нет команд, которые я делал в сеансах до перезагрузки.
Что мне нужно изменить, чтобы обновить историю, которая была у меня до перезагрузки?
Ответы:
Какая история? баш-история? Если вы теряете историю Bash и у вас есть несколько сеансов одновременно, это потому, что каждый сеанс перезаписывает историю других сеансов.
Вы, вероятно, хотите сказать bash не переписывать историю каждый раз, а добавлять к ней. Вы можете сделать это, изменив ваш .bashrc для запуска
shopt -s histappend
.Вы также можете увеличить размер файла истории, экспортировав HISTSIZE в большое число (оно выражается в байтах, поэтому 100000 должно быть достаточно).
источник
HISTSIZE
количество запоминаемых команд, а не количество байтов.Я страдал от тех же проблем - но мой
.bashrc
файл уже имелshopt -s histappend
и правильноHISTFILE
,HISTSIZE
,HISTFILESIZE
.Для меня проблема заключалась в том, что мой
.bash_history
файл принадлежал пользователю root, а не моему имени пользователя, поэтому мой пользователь никогда не мог сохранить этот файл при выходе.источник
sudo chmod your_user_name .bash_history
сделал это! Спасибо.sudo chown user_name:user_name ~.bash_history
решил это!Посмотрите переменные среды HISTFILE, HISTSIZE, HISTFILESIZE.
источник
Я написал скрипт для установки файла истории для каждой сессии или задачи, основанной на следующем.
Не обязательно сохранять каждую команду истории, но она сохраняет те, которые меня интересуют, и их проще найти, затем выполнить каждую команду. Моя версия также перечисляет все файлы истории и предоставляет возможность поиска по всем.
Полный источник: https://github.com/simotek/scripts-config/blob/master/hiset.sh
источник
Я написал несколько строк в моем .bashrc, которые выполняют следующее: Сохраняйте каждую сессию после каждой команды в файл. Там будет столько файлов истории, сколько вы когда-либо запускали терминалы. При запуске нового терминала, начиная с самого последнего файла истории, загрузите все файлы истории из предыдущих сессий в буфер истории, пока не будет достигнут порог количества строк.
источник
Я хотел бы убедиться, что .bash_history существует. Если это не так, bash некуда сохранить историю команд.
если .bash_history не существует, создайте его, запустив touch:
это просто создает пустой файл .bash_history в вашем домашнем каталоге, который будет заполняться вашими командами и должен сохраняться между сеансами.
источник
Мой экземпляр Amazon EC2 Ubuntu не сохранял историю.
.bashrc
имел все необходимые команды, как указано в других ответах, но единственное, чего не хватало, был файл. Я должен был коснуться этого, чтобы заставить это работать.источник
Хороший ответ на этот вопрос здесь:
http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html
источник