Иногда мой .bash_history очищен. Почему? Как я могу предотвратить это?

Вот моя оболочка:

$ $SHELL --version | head -1
GNU bash, version 4.1.7(2)-release (i386-apple-darwin10.3.0)

Вот мои связанные с историей настройки:

export HISTCONTROL=ignoredups:erasedups
export HISTSIZE=100000
export HISTFILESIZE=100000
shopt -s histappend
shopt -s histverify ## edit a recalled history line before executing
shopt -s histreedit ## reedit a history substitution line if it failed

## Save the history after each command finishes
## (and keep any existing PROMPT_COMMAND settings)
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

Обновление

Я смог вызвать усечение при помощи sudo -s. При вводе оболочки sudo история является усеченной к 500 записям. Какие емкостно-резистивные файлы делает sudo -s посмотрите на то, таким образом, я могу удостовериться, что это загружает мои настройки истории?

3
задан 23.08.2010, 09:26

2 ответа

Существует другая переменная, которую необходимо проверить: HISTFILESIZE

От man bash:

HISTFILESIZE
Максимальное количество строк содержится в файле истории. Когда этой переменной присваивают значение, файл истории является усеченным, при необходимости, путем удаления самых старых записей, для содержания не больше, чем того количества строк. Значение по умолчанию 500. Файл истории является также усеченным к этому размеру после записи его, когда интерактивная оболочка выходит.

Править:

Проверьте свои файлы запуска, чтобы удостовериться, что они обрабатываются правильно и в правильном порядке и что переменные устанавливаются в корректной и не быть перезаписанным.

Мое предпочтение не состоит в том, чтобы получить один "официальный" файл запуска от другого, но иметь общий код в третьем "локальном" файле, который получен каждым из "официальных", и позвольте оболочке определить, когда они обрабатываются (интерактивный или нет, вход в систему или не). Остерегайтесь этого, некоторым дистрибутивам действительно настраивали эти файлы так, чтобы источники другой, таким образом, Вы хотите удостовериться, что Вы не настраиваете бесконечный цикл.

Если Вы используете эти файлы истории больше для входа, чем многократное использование предыдущих команд смотрит на мои функции входа и видит, удовлетворяют ли они Ваши потребности. Можно все еще использовать историю - Вы просто не должны будете сохранять большую часть ее.

См. комментарии ниже для большего количества детали.

3
ответ дан 08.12.2019, 01:08

И Вы, кажется, довольно уверены, что это не были Вы сами, кто (случайно) удалил его... Действительно ли Вы - единственный пользователь на этом компьютере?

Таким образом, это очень необычно. Удостоверьтесь, что никто не вмешивается в Ваш bash_history. Возможно, можно получить некоторое вдохновение здесь: http://everything2.com/title/Protect+against+deleted+.bash_history+files

0
ответ дан 08.12.2019, 01:08

Теги

Похожие вопросы