go env 显示 Go 工具链实际使用的环境变量,非 shell 环境变量;支持查看全部(go env)、单个(go env GOPATH)、写入(go env -w GOPATH=...)和取消(go env -u GOPATH)配置,修改立即生效。

直接运行 go env 就能查看当前 Go 环境变量的完整列表,它显示的是 Go 工具链实际使用的配置,不是系统 shell 的环境变量。
查看当前所有 Go 环境变量
在终端中执行:
go env
会输出类似以下内容(精简示例):
GOPATH="/home/user/go"
GOROOT="/usr/local/go"
GOOS="linux"
GOARCH="amd64"
GO111MODULE="on"
这些值由 Go 自动推导或从系统环境继承而来,部分可被手动覆盖。
查看单个环境变量的值
用 go env 加变量名即可快速获取,比如:
go env GOPATHgo env GOROOT
比在 shell 中查 $GOPATH 更可靠,因为 Go 会做标准化处理(如自动补全绝对路径、清理末尾斜杠)。
临时修改某个 Go 环境变量
不推荐直接改系统环境变量,而是用 go env -w 写入 Go 的用户级配置文件(~/.go/env):
go env -w GOPATH=/my/custom/gogo env -w GO111MODULE=off
写入后立即生效,后续所有 go 命令都会使用新值。想恢复默认?用 -u 参数取消设置:
go env -u GOPATH
注意几个关键点
-
go env显示的是 Go 认为“该用”的值,和 shell 的env或printenv不完全一致 -
GOROOT通常不应手动设置,除非你装了多个 Go 版本且需要切换 -
GOBIN默认是$GOPATH/bin,建议保持默认,避免命令找不到 - 修改后不需要重启终端或重载 shell 配置,
go命令自身会读取最新设置
基本上就这些。用好 go env 能帮你避开不少模块下载、路径识别和构建失败的问题。










