Всякий раз, когда я открываю новый экземпляр терминала, история пуста. Это почему? Нужно ли что-то настраивать? В bash это не нужно.
zsh
command-history
Жиль "ТАК - перестань быть злым"
источник
источник
zsh
, но по умолчаниюbash
записывает в его файлы истории при выходе , что означает, что если вы не использовали его раньше и не открывали некоторые оболочки, все они теперь будут отображать историю, пока хотя бы один из них не выйдет из системы, записав свой файл истории.Ответы:
Bash и Zsh имеют разные значения по умолчанию. Zsh не сохраняет историю в файл по умолчанию.
Когда вы запускаете zsh без файла конфигурации, он отображает интерфейс конфигурации. В этом интерфейсе конфигурации выберите
затем просмотрите предложенные настройки и выберите
Повторите эти действия для других подменю для (2) завершения, (3) сочетаний клавиш и (4) параметров, затем выберите
из главного меню.
Рекомендуемые настройки, связанные с историей:
Я бы использовал другое имя для файла истории, чтобы указать, что это файл истории zsh. И 1000 линий могут быть увеличены на современной системе.
Эти строки идут
~/.zshrc
, кстати.источник
Хотя существующий ответ правильный, я подумал, что, возможно, стоит добавить, что, возможно, есть лучший вариант, чем
appendhistory
сохранение истории, и это такSHARE_HISTORY
.Из документов
SHARE_HISTORY
"оба импортируют новые команды из файла истории, а также заставляют ваши введенные команды добавляться в файл истории". Это означает, что оболочки знают историю друг друга без необходимости закрывать текущую или открывать новую.Итак, все вместе вы установили бы это так:
источник
INC_APPEND_HISTORY_TIME
, который записывает в историю со всех терминалов, как указано выше, но эта история "не будет доступна немедленно из других экземпляров оболочки, которые используют тот же файл истории". Это имеет больше смысла для меня, потому что тогда я могу независимо просматривать историю каждого терминала, но он все еще записывается в журнал.INC_APPEND_HISTORY_TIME
может иметь более логичный смысл. Я, наверное, не должен был говорить «лучше», я думаю, это просто вопрос личных предпочтений на данный момент!когда вы впервые переключаетесь с bash на zsh, ваша история bash не будет перенесена. Таким образом, вся история, которую вы имели в bash, все еще находится в файле истории bash. Zsh начинает записывать историю с того момента, как вы начали использовать ее в качестве оболочки.
Если вы не настроили его для захвата истории, вы можете перезапустить мастер настройки и сообщить zsh, сколько истории сохранить. Либо измените имя ~ / .zshrc, либо удалите его, чтобы получить новый выстрел в мастере.
источник
Если это не работает, и у вас все это уже есть, попробуйте:
Это записывает текущую историю в файл истории. И если вы получите:
тогда пришло время проверить права доступа к файлу и родительскому каталогу.
источник