Ответы в ссылке, предоставленной вами с сайта суперпользователей, не обязательно должны рассматриваться как «обходные пути» к history
поведению команды по умолчанию. Оболочка bash имеет стандартное поведение по умолчанию.
Я очень рекомендую прочитать Как я могу избежать потери каких-либо строк истории? для объяснения того, что делают эти модификации history
. Кроме того, есть некоторые разумные опасения , чтобы быть в курсе, почему это не поведение по умолчанию history
команды.
производительность - Так как вы спасаете каждую команду из каждого окна с history -a
, то .bash_history
файл может стать довольно большим и требует больших ресурсов для загрузки оболочки Bash. Это может привести к увеличению времени запуска (для сеансов терминала, а не к общему запуску системы, как таковой).
организация - (из вышеприведенной статьи) «команды истории одновременных интерактивных оболочек (для данного пользователя) будут переплетены. Поэтому история не является гарантированным последовательным списком команд, поскольку они выполнялись в одной оболочке».
Если вас беспокоит дальнейшая защита оболочки bash и. bash_history
Посмотрите файл с помощью аудита, ознакомьтесь с этой статьей: Как вести журнал или «защищать» bash от удаления истории?
В некоторых случаях (например, нестабильная система или сбой питания) я нашел следующие команды полезными.
Добавьте следующие строки в ваш ~/.bashrc
файл:
unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND
shopt -s histappend
Убедитесь, что источник вашего .bashrc
файла с помощью командыsource ~/.bashrc