如何永久设置 GOPATH 和 PATH 环境变量(macOS 终端)

在 macos 上通过终端临时设置的 gopath 和 path 会在新会话中丢失,需将其写入 shell 配置文件(如 ~/.bash_profile 或 ~/.zshrc)才能持久生效。

当你在终端中执行 export GOPATH=$HOME/go 和 export PATH=$PATH:$GOPATH/bin 时,这些环境变量仅对当前 Shell 进程及其子进程有效。一旦关闭终端或开启新窗口,Shell 会重新加载默认配置,而你未保存的 export 命令自然失效。

✅ 正确做法是将这两行添加到你的 Shell 启动配置文件中。macOS Catalina(10.15)及之后版本默认使用 Zsh,旧版本(如 10.8–10.14)多用 Bash。请先确认当前 Shell:

echo $SHELL
  • 若输出 /bin/zsh:编辑 ~/.zshrc
  • 若输出 /bin/bash:编辑 ~/.bash_profile(推荐优先使用此文件,因 macOS 对 Bash 用户默认加载它;~/.bashrc 在非交互式登录 Shell 中可能不被读取)

执行以下命令(以 Zsh 为例):

echo 'export GOPATH=$HOME/go' >> ~/.zshrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshrc
source ~/.zshrc  # 立即生效,无需重启终端
? 验证是否成功: echo $GOPATH # 应输出 /Users/yourname/go echo $PATH # 应包含 :/Users/yourname/go/bin go env GOPATH # Go 工具链也应识别该路径

⚠️ 注意事项:

  • 不要同时在 ~/.bash_profile 和 ~/.zshrc 中重复设置,避免冲突;
  • 修改后务必运行 source [配置文件] 使更改立即生效;
  • 如果使用 VS Code 等 IDE,请重启终端集成窗口(或整个 IDE),否则其内置终端可能仍缓存旧环境;
  • Go 1.16+ 默认启用模块模式(GO111MODULE=on),但 GOPATH 仍影响 go install、工具安装(如 gopls)及传统工作区行为,建议保持合理配置。

完成上述步骤后,无论新开多少个终端窗口,GOPATH 和 go 可执行文件路径都将稳定可用。