解决 zsh: command not found 报错

问题描述

最近在开发 Go 项目,使用 go get -u xxxx 成功下载安装包后,在终端执行新下载包的命令,一直报 zsh: command not found 的错误。一开始以为是包没安装成功,但检查后发现不是,如下图所示,swag 包有安装。后来才意识到有可能是环境变量出问题。
报错信息
环境变量
执行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

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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值