Ame*_*ina 76 command-history zsh
Zsh 如何跟踪命令历史?
我在主目录中看到两个文件:.zhistory
和.zsh_history
. 它们之间有什么区别?这些文件似乎包含我的所有历史记录。Zsh 是否会永远向其中之一添加行?这不会使历史搜索太慢吗?
我可以安全地将这些文件符号链接到另一个位置吗?(例如,用于跟踪历史更改的 git 存储库)
Gil*_*il' 110
Zsh 将输入行(可能带有时间信息)存储在由变量 指示的文件中HISTFILE
。这应该是一个绝对文件名(否则它将相对于当时的任何目录进行解释)。
Zsh 没有内置的默认值HISTFILE
。zsh 发行版为新用户提供了一个设置向导,该向导具有~/.histfile
内置的值,因此这是 zsh 用户默认获得的。Oh-my-zsh 带有HISTFILE=.zhistory
预设。所以看起来你用默认设置和 oh-my-zsh 都尝试了 zsh。检查您的.zshrc
(或文件日期)以查看您当前使用的是哪一个。
zsh 如何打开文件,因此如果它是符号链接会发生什么,取决于几个选项。
append_history
(默认设置), inc_append_history
或share_history
已设置,或者当历史记录使用 显式保存时fc -AI
,zsh 将附加到现有文件。hist_save_by_copy
设置了该选项(自 zsh 5.0 起默认设置,但在 4.2 中不存在),zsh 会写入一个临时文件,然后在完成后将其移动到位。在这种情况下,如果历史文件是符号链接,则新文件将替换符号链接。与其将 zsh 指向符号链接,不如将其设置HISTFILE
为您希望历史文件所在的位置。
保留多少行历史记录是通过变量HISTSIZE
和 配置的SAVEHIST
。HISTSIZE
是会话中保留SAVEHIST
的最大行数,是历史文件中保留的最大行数。
要完全保存一些历史记录,您需要同时设置HISTFILE
and SAVEHIST
,因为 的默认值为SAVEHIST
0。您可能还想增加HISTSIZE
(从 zsh 5.0 开始,默认值仅为 30)。
归档时间: |
|
查看次数: |
105396 次 |
最近记录: |