Є межа і можливості ваших машин.
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000000
SAVEHIST=10000000
setopt BANG_HIST # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY # Don't execute immediately upon history expansion.
setopt HIST_BEEP # Beep when accessing nonexistent history.
Із списку розсилки ZSH :
Ви повинні визначити, скільки у вас пам’яті, скільки ви можете дозволити займати історію (в AFAIK вона завжди повністю завантажується в пам’ять) і діяти відповідно. Видалення ліміту не мудріше, оскільки це дає вам уявлення про те, що немає обмеження, хоча він завжди обмежений наявними ресурсами.
Або якщо ви не думаєте, що у вас коли-небудь виникне проблема із виснаженням ресурсів, ви можете просто встановити HISTSIZE на LONG_MAX з меж. H: це максимальне число, яке може мати HISTSIZE.
Які пояснюють рішення Gentoo:
export HISTSIZE=2000
export HISTFILE="$HOME/.history"
Історія не буде збережена без наступної команди:
export SAVEHIST=$HISTSIZE
Щоб історія не записувала дубліровані записи (наприклад, ls -l вводився багато разів протягом одного сеансу оболонки), ви можете встановити параметр hist_ignore_all_dups:
setopt hist_ignore_all_dups
Корисний трюк, щоб запобігти запису конкретних записів в історію, попередньо перед ними, принаймні, одним пробілом.
setopt hist_ignore_space