Terminal

終端重新啟動後未保存 ZSH 命令歷史記錄

  • April 26, 2022

每當我重新啟動終端時,我都無法使用箭頭鍵查看我之前在終端中輸入的命令。我以前能夠做到這一點。由於我每次重新啟動終端時都更新到 macOS Catalina 並使用 Apple 的預設 ZSH,因此沒有命令歷史記錄。

我的 zshrc 文件使用以下配置來保存命令:

# History in cache directory:
HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.cache/zsh/history
setopt INC_APPEND_HISTORY
setopt SHARE_HISTORY 

問題可能是該目錄~/.cache/zsh/不存在。如果不存在,Zsh 會為您創建歷史文件,但不會為您創建不存在的目錄。

此外,在 macOS 上,您不需要設置歷史文件本身。這已經在/etc/zshrc.

最後,(這與您的問題無關,只是一個提示)您應該始終確保HISTSIZESAVEHIST使用任何HIST_*_DUPS選項時至少大 20% 。否則,一旦你的歷史超過 .zsh 就無法有效消除重複SAVEHIST。所以,在你的情況下,我會把它增加到HISTSIZE=12000或更大。

所以無論如何:

  • 嘗試註釋掉你的HISTFILE行,

或者

  • 創建您希望 Zsh 寫入文件的目錄,

看看是否有幫助。

引用自:https://unix.stackexchange.com/questions/595335