история zsh слишком коротка

когда я запускаю history в Bash я получаю нагрузку результатов (1000+). Однако, когда я бегу history оболочка zsh я получаю только 15 результатов. Это делает историю grepping в zsh в основном бесполезной. Мой .zshrc файл содержит следующие строки:

HISTFILE=~/.zhistory
HISTSIZE=SAVEHIST=10000
setopt sharehistory
setopt extendedhistory

как я могу исправить zsh, чтобы сделать мою историю оболочки более полезной?


обновление

если в ЗШ я называю history 1 Я получаю всю свою историю, так же, как и в Bash с history. Я мог бы псевдоним команды, чтобы получить тот же результат, но интересно, почему history вести себя по-разному в zsh и в Bash.

2 ответов


ОП уже заявил ответ в обновлении на вопрос:history ведет себя по-разному в bash, чем в zsh:

короче:

  • ЗШ:
    • history перечислены только 15 последних записи истории
    • history 1 списки все - см. ниже.
  • Баш:
    • history списки все записи истории.

К сожалению, проходя числовой операнд to history ведет себя по-разному тоже:

  • ЗШ:
    • history <n> показывает все элементы начиная с <n> - следовательно, history 1 показывает все записи.
    • (history -<n> -- обратите внимание на - -- показывает <n> последние записи, поэтому поведение по умолчанию эффективно history -15)
  • Баш:
    • history <n> показывает <n> последние записи.
    • (Баша history не поддерживает листинг с номер записи; вы можете использовать fc -l <n>, но a запись <n>, должно быть, в противном случае команда не выполняется - см. под.)

дополнительно справочная информация:

  • в zsh,history фактически (не на самом деле) псевдоним для fc -l: см.man zshbuiltins
    • для многих функций, связанных с историей, см. man zshall
  • в bash, history - это собственная команда, синтаксис которой отличается от fc -l
    • посмотреть: man bash
  • поддержка bash и zsh fc -l <fromNum> [<toNum>] перечислить данный ряд записей :
    • bash: конкретная запись <fromNum> должны существовать.
    • zsh: команда выполняется успешно, если хотя бы 1 запись попадает в (явный или подразумеваемый) диапазон.
    • таким образом, fc -l 1 работает в zsh, чтобы вернуть все записи истории, тогда как в bash это обычно не будет, учитывая, что запись #1 обычно больше не существует (но, как указано, вы можете использовать history без аргументов для перечисления всех записей в бить.)

#set history size
export HISTSIZE=10000
#save history after logout
export SAVEHIST=10000
#history file
export HISTFILE=~/.zhistory
#append into history file
setopt INC_APPEND_HISTORY
#save only one command if 2 common are same and consistent
setopt HIST_IGNORE_DUPS
#add timestamp for each entry
setopt EXTENDED_HISTORY   

Это моя настройка, и она работает