解决 zsh: command not found 报错

问题描述

最近在开发 Go 项目,使用 go get -u xxxx 成功下载安装包后,在终端执行新下载包的命令,一直报 zsh: command not found 的错误。一开始以为是包没安装成功,但检查后发现不是,如下图所示,swag 包有安装。后来才意识到有可能是环境变量出问题。
解决 zsh: command not found 报错_第1张图片
环境变量
执行echo $PATH 命令,发现该路径最后使用的 go bin 路径并不是我所设置的 GOBIN。查找相关文件后才知道原来 oh my zsh 所加载的环境变量并不是 Mac 本身自带的环境变量不同。

原因

在 Mac 中有几个地方可以修改环境变量,分别是:

  1. /etc/profile
  2. /etc/paths
  3. ~/.bash_profile

其中 /etc/profile 和 /etc/paths 是全局变量,适合全部用户,当系统启动时会自动加载。这些变量都是系统级别的,修改时要小心。而 ~/.bash_profile 是当前用户使用的环境变量,一般我们新增环境变量的话,都是在这个文件中进行修改。
而 oh my zash 所加载的环境变量使用的是 ~/.zshrc 这个文件。
当我们在命令行中使用 EXPORT GOPATH="~/Code/Go" 时,其实只是把 GOPATH 添加到 ~/.bash_profile 中,对 ~/.zshrc 这个文件并没有影响。

解决方法

知道原因后那就很好解决了。接下来就是把在 ~/.bash_profile 中设置的环境变量(GOROOT、GOPATH、GOBIN)添加到 ~/.zshrc 中。
在 ~/.zshrc 中添加 go 的环境变量
添加好后执行 source ~/.zshrc 生效配置。

总结

以后碰到类似的报错则可按以下流程检查:

  1. 检查软件是否正确安装
  2. 若软件正确安装,检查环境变量是否正确配置

本文主要参考了以下两篇文章:

  1. https://www.cnblogs.com/dadonggg/p/11097771.html
  2. https://www.jianshu.com/p/020f3d02f538

若我的文章对您有帮助,请不要吝啬您的点赞哦!
若有讲错的地方,欢迎指正 :)

你可能感兴趣的:(解决 zsh: command not found 报错)