设置 zsh 默认 shell 后拒绝访问 zsh_history

设置 zsh 默认 shell 后拒绝访问 zsh_history

我的 Linux 设备上的 shell 默认是 bash。我试过改变我的外壳默认为 zsh。

唯一的问题是我无法查看我的 zsh 历史记录,并且我的命令历史记录也没有保存到~/.zsh_history其中。

但是,如果我通过键入 手动从 bash 中进入 zsh shell zsh,我既可以查看我的命令历史记录,也可以保存我的命令历史记录。

经过一些故障排除后,问题似乎出在将我的默认 shell 更改为 zsh 时。如果我这样做,我将无法.zsh_history再访问:

$ cat ~/.zsh_history
cat: /home/user/.zsh_history: Permission denied

我该如何解决这个问题?

答案1

我找到了解决方案。我只需要设置 zsh 文件的权限:

sudo chmod 777 ~/.zsh_history

从现在开始,我的历史记录可以正确加载和保存。

问题似乎是这样一个事实:如果我zsh通过键入该命令手动将 shell 更改为,我将获得 root 权限。如果我将默认 shell 更改为zsh,那么我将以用户身份登录user

相关内容