因为MacOS Catalina默认使用了zsh的Shell语言,系统更新后可能会导致部分命令出现找不到的情况
command not found XXX
之前在网上没有找到可用的方法,今天终于解决了,所以分享出来,节省大家找问题的时间
原因
导致命令不可用的真正原因是zsh和bash的默认环境变量配置文件地址不一致导致的。
比如我一般习惯把环境变量配置到 /etc/profile 中,这应该也是大多数有linux的bash操作习惯的人喜欢配置的路径。
但是zsh的默认并没有读取/etc/profile的环境变量,所以导致之前在环境变量配置的环境失效了。
解决方法
知道原理之后解决就很简单,我们找到zsh的新环境变量配置文件并打开
vim ~/.zshrc
这时候就可以看到zsh的配置信息
#Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"
如果没有找到该文件的话,直接创建一个也是可以的
我们只要在这里去引入之前的配置文件就可以了,以下是配置后的.zshrc文件
#Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"
source ~/.bash_profile
source /etc/profile
之后在source一下.zshrc文件或者重新启动一个终端,就没问题了
source ~/.zshrc
这样问题就基本解决了
总结
总而言之是问题出在bash shell 与 zsh shell 的不同点导致的,之前常看网上说所谓的“完全兼容”,现在想想过于可笑,毕竟不是由一个项目更新的,所谓的兼容更像是在应用层面模仿bash。
当然,如果zsh比bash更加好用,我们也应该去尝试新事物。