история 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без аргументов для перечисления всех записей в бить.)
- bash: конкретная запись
#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
Это моя настройка, и она работает