go command not found 的主因是 shell 配置文件选错或 PATH 未正确添加;macOS Catalina 后默认 zsh,需确认 echo $SHELL 后编辑对应配置文件(~/.zshrc 或 ~/.bash_profile),手动追加 export PATH=/usr/local/go/bin:$PATH 并 source 生效。

go command not found?先确认 shell 类型和配置文件写对了
装完 .pkg 或 brew install go 后输 go version 报错“command not found”,90% 是因为改错了 shell 配置文件。macOS Catalina(10.15)起默认用 zsh,但升级系统或手动换过 shell 的人可能还在用 bash。执行 echo $SHELL 看输出:
• 输出 /bin/zsh → 编辑 ~/.zshrc
• 输出 /bin/bash → 编辑 ~/.bash_profile
官方安装包虽会尝试写入 PATH,但它只对新打开的终端生效,且不保证写进你当前用的配置文件里。最稳做法是手动加一行:echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.zshrc
然后立即生效:source ~/.zshrc
验证是否落进去了:echo $PATH | grep "local/go/bin" —— 有输出才算成功。
Apple Silicon(M1/M2/M3)芯片必须选对安装包架构
在官网 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载时,别只看“macOS”就随手点。Intel 芯片选 darwin-amd64.pkg,Apple Silicon 必须选 darwin-arm64.pkg。装错会导致 go version 直接报 “Bad CPU type in executable” 或静默失败。Homebrew 安装相对友好:brew install go 会自动匹配芯片(Apple Silicon 装在 /opt/homebrew/bin/go,Intel 在 /usr/local/bin/go),但如果你之前手动装过旧版,which go 可能指向冲突路径,建议先 brew uninstall go 再重装。
国内开发不配 GOPROXY,go mod download 基本跑不通
Go 1.11+ 默认启用 modules,GOPATH 已非强制,但 GOPROXY 是国内开发的刚需。不配的话,go get 或 go mod tidy 会卡在拉 golang.org/x/... 或 GitHub 依赖上,超时或 404。运行一次即可持久生效:go env -w GOPROXY=https://goproxy.cn,directgo env -w GOSUMDB=sum.golang.google.cn
注意结尾的 ,direct 表示私有模块走本地,避免代理拦截内部仓库。如果公司用自建 Athens,把地址换掉就行。
验证环境不能只跑 go version,得闭环测试
go version 只说明二进制存在,不代表网络、模块、执行链都通。三步连验才靠谱:
• go version → 确认架构匹配(如 darwin/arm64 对 M2)
• go env GOPATH GOROOT → 看 GOROOT 是不是 /usr/local/go(pkg 安装)或 /opt/homebrew/Cellar/go/xxx/libexec(brew 安装)
• 实际跑一个模块项目:mkdir ~/test-go && cd ~/test-gogo mod init example.com/testgo run
输出 OK 才算真正就绪。最容易被跳过的坑是:终端没 source 就急着验证,或者芯片架构与安装包错配后反复重试却不换包。
立即学习“go语言免费学习笔记(深入)”;










