9

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

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


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

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

2 ответа2

8

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

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

-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, а затем команды, введенные после изменения владельца файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .