сохранить историю Bash, регулярно


9

У меня есть bash, настроенный для сохранения истории в файл. Это происходит всякий раз, когда bash выходит [правильно]. Поскольку иногда bash не выходит должным образом, история теряется.

Итак, вопрос в том, можно ли настроить bash для более регулярного сохранения истории?


Я использую Debian Gnu (версия 6, Squeeze) с ядром Linux.

версия bash: GNU bash, версия 4.1.5 (1) -релиз (i486-pc-linux-gnu)

Ответы:


8

сохраните это в ваш bash_profile или bashrc

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"


Это все еще правильный ответ? В моей системе есть запись shopt -s histappendпод /etc/bash/bashrc. Тем не менее, любой нечистый выход запущенных оболочек теряет свою историю командной строки.
Никос Александрис

-1

Возможно, ваш $ HISTFILE принадлежит root. Предполагая, что вы используете bash в качестве оболочки для входа. Вот как это проверить:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

По умолчанию для HISTFILE должно быть ~ / .bash_history, если вы видите ошибку «необходимо установить HISTFILE» или если $ HISTFILE не является ~ / .bash_history, то вам следует проверить ~ / .profile, ~ / .bash_profile или ~ /. Bashrc, чтобы убедиться, что он не устанавливается или сбрасывается неправильно.

Обычно он принадлежит только пользователю root, поэтому просто сбросьте его:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

Выйдите, затем войдите.

$ history

Должен отображать последний набор команд, введенных до того, как файл стал владельцем root, а затем команды, введенные после изменения владельца файла.


3
Поскольку OP говорит, что история сохраняется при нормальном выходе bash, его проблема не имеет ничего общего с разрешениями. Возможно, ваш ответ все еще может быть полезен для тех, у кого проблемы с историей Bash.
Дмитрий Григорьев
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.