Насколько я понимаю, файл истории обновляется при выходе из терминала. Но иногда мой компьютер дает сбой, и терминал не выходит чисто, и тогда я теряю те команды из моей истории, что раздражает. Как я могу сделать так, чтобы он сразу сбрасывался, чтобы записи по-прежнему оставались там, даже если у моего компьютера произошел обвал? В настоящее время я использую этот обходной путь, но я чувствую, что должен быть лучший способ.
Я использую gnome-терминал в Ubuntu 12.10.
Ответы в ссылке, которую Вы предоставили от сайта Суперпользователей, не должны обязательно быть просмотрены как 'обходные решения' к history
поведение команды по умолчанию. Оболочка удара имеет некоторых нормальных, из поля, поведения по умолчанию.
Я настоятельно рекомендовал бы чтение, Как я могу постараться не терять какие-либо строки истории? для объяснения какой эти модификации к history
делают. Кроме того, существуют некоторые разумные проблемы для знания относительно того, почему это не поведение по умолчанию history
команда.
производительность - Так как Вы сохраняете каждую команду из каждого окна с history -a
, .bash_history
файл может стать довольно большим и потребовать, чтобы большие ресурсы загрузили оболочку удара. Это может закончиться в более длительные времена запуска (для Ваших терминальных сеансов, не полного системного запуска, по сути.).
организация - (от вышеупомянутой статьи), "команды истории одновременных интерактивных оболочек (для данного пользователя) будут переплетены. Поэтому история не является гарантируемым последовательным списком команд, поскольку они выполнялись в единственной оболочке".
Если Вы обеспокоены дальнейшим обеспечением оболочки удара и.bash_history
файл посредством аудита, смотрите на эту статью: Как делают меня журнал или "защищают" удар от удаления истории?
При случае (например, нестабильная система или сбой питания), я нашел ниже команд полезный.
Добавьте следующие строки к Вашему ~/.bashrc
файл:
unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND
shopt -s histappend
Убедитесь источнику Ваш .bashrc
файл с помощью команды source ~/.bashrc
Простейший рабочий ответ на вопрос «Как сохранить историю терминалов вручную?»:
history -a
Также стоит рассмотреть возможность перехода на zsh с setopt inc_append_history
[ 112] («сохранить каждую команду перед ее выполнением»).
И этот вопрос также актуален: Можно ли сделать запись в .bash_history незамедлительной?
Чтобы сохранить историю bash вручную в файл:
history -w ~/history.txt
vim ~/history.txt
Экспортирует историю в файл с именем history.txt. Затем вы можете просмотреть его в своем любимом редакторе.
Ответ скопирован с http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/