มีขีด จำกัด และความเป็นไปได้ของเครื่องของคุณ
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