история 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
Это моя настройка, и она работает