Вчера я выпустил много команд в своем CentOS 7. Но когда я хотел получить эти команды сегодня, я обнаружил, что никакой записи не было. Когда я открыл файл .bash_history
, я все еще не мог найти команды, которые я дал вчера, но я нашел много старых команд несколько дней назад. Почему последние команды не были сохранены? Как я могу увеличить возможности истории?
bash
command-history
Джек
источник
источник
Ответы:
Наиболее вероятная причина того, что элементы истории не отображаются, заключается не в том,
HISTFILE
чтобы установить ничего илиHISTSIZE
ноль, а в том, что вы дважды заходите на одну и ту же машину и выходите со вторым экземпляром bash (в котором вы сделали мало или ничего) после того, где ты много сделал По умолчанию Bash не объединяет истории, и второй выход Bash перезаписывает тот,.bash_history
который был так хорошо обновлен первым выходом Bash.Чтобы этого не произошло, вы можете добавить в файл истории вместо перезаписи, вы можете использовать параметр
histappend
оболочки:Более подробная информация в этом ответе включает в себя, как использовать
HISTSIZE
,HISTFILESIZE
иHISTCONTROL
контролировать размер, дубликаты и т. Д.источник
Для изменения истории использовать размер два BASH переменных
HISTSIZE
,HISTFILESIZE
(обычно устанавливаются в.bashrc
).Описание со страницы руководства BASH:
В качестве примера у меня есть следующая настройка в моем
.bashrc
файле:источник
Я имел это случиться, но решение не было перечислено здесь. Причиной была просто проблема копирования + вставки. Я копировал команду из другого документа, и у меня было несколько лишних пробелов в буфере обмена. По какой-то причине это привело к тому, что Ubuntu не сохранил команду в файл истории.
Приведенное выше изображение было командой, которая была у меня в буфере обмена в виде документов Google. Эта команда выполнялась, но была пропущена из моей истории. Я просто вернулся и выбрал команду без пробелов, а затем она появилась в истории Bash.
источник
Убедитесь, что для вашей
HISTCONTROL
переменной среды не установлено значениеignorespace
илиignoreboth
.Вы можете изменить его, установив значение в вашем
~/.bash_profile
или вашем~/.profile
файле:С
bash
man-страницы:источник