Mac终端启动提示zsh compinit不安全目录错误,无法执行命令如何解决
解决步骤
1. 启动无配置的zsh,获得可执行命令的环境
你现在无法执行命令的核心原因是配置文件出现了递归加载的死循环,首先要绕过自定义配置启动shell:
- 完全退出终端(右键程序坞终端图标→选择「退出」)
- 重新打开终端,立即按下快捷键
Command + ,打开终端偏好设置 - 选择「描述文件」页签,选中左侧你正在使用的默认描述文件(通常为Basic),右侧切换到「shell」标签
- 在「启动」分类的「运行命令」输入框中填写
zsh -f,勾选「在shell中运行」,取消勾选「运行在独立的shell中」 - 关闭偏好设置,新建终端窗口,此时启动的zsh不会加载任何自定义配置,可以正常执行命令
2. 修复配置文件递归加载问题
当前你的.zshrc加载了.bash_profile,而.bashrc又主动加载.zshrc,形成无限调用导致shell启动卡死,优先删除错误的加载逻辑:
- 执行命令打开
.bashrc文件:open ~/.bashrc - 删除文件末尾的如下3行内容:
if [ -r ~/.zshrc ]; then source ~/.zshrc fi
- 保存关闭后,执行命令打开
.zshrc文件:open ~/.zshrc - 删除文件末尾的
source ~/.bash_profile行,zsh无需加载bash的配置文件,跨shell加载配置极易出现兼容问题,保存关闭。
3. 修复zsh compinit不安全目录报错
该报错是因为zsh补全关联的目录权限不符合安全要求,依次执行以下命令修复权限即可:
compaudit | sudo xargs chmod g-w compaudit | sudo xargs chown root:wheel
执行过程中需要输入你的Mac开机密码,输入时密码不会显示,输入完成直接回车即可。
4. 恢复终端默认启动配置
- 再次打开终端偏好设置,删除之前填写的启动命令
zsh -f,恢复默认设置 - 完全退出终端后重新打开,即可正常使用
内容的提问来源于stack exchange,提问作者runnerpaul
相关产品推荐
相关产品推荐

