Gil*_*il' 41
Bash 和 zsh 有不同的默认值。默认情况下,Zsh 不会将历史记录保存到文件中。
当你在没有配置文件的情况下运行 zsh 时,它会显示一个配置界面。在这个配置界面,选择
(1) Configure settings for history, i.e. command lines remembered
and saved by the shell. (Recommended.)
Run Code Online (Sandbox Code Playgroud)
然后查看建议的设置并选择
# (0) Remember edits and return to main menu (does not save file yet)
Run Code Online (Sandbox Code Playgroud)
对其他子菜单重复 (2) 完成、(3) 键绑定和 (4) 选项,然后选择
(0) Exit, saving the new settings. They will take effect immediately.
Run Code Online (Sandbox Code Playgroud)
从主菜单。
推荐的历史相关设置是
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory
Run Code Online (Sandbox Code Playgroud)
我会为历史文件使用不同的名称,以表明它是 zsh 的历史文件。在现代系统上可以增加 1000 行。
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory
Run Code Online (Sandbox Code Playgroud)
~/.zshrc
顺便说一句,这些行进入。
ber*_*ert 20
虽然现有答案是正确的,但我认为可能值得补充的是,可能有比appendhistory
保存历史记录更好的选择,这是SHARE_HISTORY
.
从文档SHARE_HISTORY
“两者都从历史文件中导入新命令,并且还会导致您键入的命令附加到历史文件中”。这意味着 shell 也知道彼此的历史,而不必关闭当前的或打开新的。
所以,你可以这样设置:
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=1000
setopt SHARE_HISTORY
Run Code Online (Sandbox Code Playgroud)
如果它不起作用,并且您已经准备好所有这些,请尝试:
fc -W
Run Code Online (Sandbox Code Playgroud)
这会将当前历史记录写入历史文件。如果你得到:
zsh: locking failed for /home/username/.zsh_history: permission denied
Run Code Online (Sandbox Code Playgroud)
那么是时候检查文件和父目录的权限了。
归档时间: |
|
查看次数: |
23251 次 |
最近记录: |