Как сохранить историю терминала вручную?

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

Я использую gnome-терминал в Ubuntu 12.10.

33
задан 20 March 2017 в 13:18

3 ответа

Ответы в ссылке, которую Вы предоставили от сайта Суперпользователей, не должны обязательно быть просмотрены как 'обходные решения' к 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

17
ответ дан 20 March 2017 в 13:18

Простейший рабочий ответ на вопрос «Как сохранить историю терминалов вручную?»:

history -a

Также стоит рассмотреть возможность перехода на zsh с setopt inc_append_history [ 112] («сохранить каждую команду перед ее выполнением»).

И этот вопрос также актуален: Можно ли сделать запись в .bash_history незамедлительной?

0
ответ дан 20 March 2017 в 13:18

Чтобы сохранить историю bash вручную в файл:

history -w ~/history.txt
vim ~/history.txt

Экспортирует историю в файл с именем history.txt. Затем вы можете просмотреть его в своем любимом редакторе.

Ответ скопирован с http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/

0
ответ дан 20 March 2017 в 13:18

Другие вопросы по тегам:

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