文章目录
- 1.简介
- 2.格式
- 3.示例
- 4.环境变量
- 参考文献
1.简介
go env 用于查看和设置 Go 环境变量。
默认情况下 go env 输出格式为 Shell 脚本格式(如 Windows 上是 batch 文件格式)。如果指定变量名称,则只输出变量的值。
2.格式
go env [-json] [-u] [-w] [var ...]
其中 -json 表示以 JSON 格式输出而不是 Shell 脚本格式。
-u 表示 unset,取消环境变量。
-w 表示 write,设置环境变量。
3.示例
(1)查看 Go 所有环境变量。
# Linux 环境查看 Go 所有环境变量
go env
GOARCH="amd64"
GOBIN="/data/home/go_proj/going_proj/bin"
GOCACHE="/home/dablelv/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/dablelv:/data/home/go_proj/going_proj"
GORACE=""
GOROOT="/usr/local/go"
...# Windows 环境查看 Go 所有环境变量
go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\dablelv\AppData\Local\go-build
set GOENV=C:\Users\dablelv\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
...
(2)查看指定环境变量
go env NAME
(3)以 JSON 格式显示指定环境变量。
go env -json GOROOT
{"GOROOT": "C:\\Users\\dablelv\\.go\\1.22.1\\go"
}
(4)删除环境变量。
go env -u NAME
(5)设置环境变量
go env -w NAME=VALUE
(6)查看 go env 的帮助信息。
go help env
usage: go env [-json] [-u] [-w] [var ...]Env prints Go environment information.By default env prints information as a shell script
(on Windows, a batch file). If one or more variable
names is given as arguments, env prints the value of
each named variable on its own line.The -json flag prints the environment in JSON format
instead of as a shell script.The -u flag requires one or more arguments and unsets
the default setting for the named environment variables,
if one has been set with 'go env -w'.The -w flag requires one or more arguments of the
form NAME=VALUE and changes the default settings
of the named environment variables to the given values.For more about environment variables, see 'go help environment'.
4.环境变量
Go 环境变量是一些配置信息,可以影响 Go 程序的依赖管理、编译构建和运行环境和等方面。
常见环境变量有:
变量 | 含义 |
---|---|
GOROOT | go 语言安装时所在的目录绝对路径 |
GOPATH | 工作区所在的绝对目录 |
GOVERSION | 安装的 Go 版本 |
GOENV | Go 环境变量配置文件的位置。不能使用 ‘go env -w’ 设置。若设置 GOENV=off 将禁用默认配置文件的使用。 |
GOOS | 编译代码的操作系统名称(比如 linux,windows,darwin 等) |
GOARCH | 计算机处理器的架构(比如 amd64,386,arm 等) |
GOPROXY | Go Modules 的代理地址(URL),用于加速下载 Go 模块 |
GOSUMDB | 要使用的校验和数据库的名称以及可选的公钥和URL。详见 https://golang.org/ref/mod#authenticating |
GOPRIVATE, GONOPROXY, GONOSUMDB | 以 glob 模式表示的模块路径,多个使用逗号分隔。这些模式应该总是直接获取,不走代理拉去,且不参与校验。详见 https://golang.org/ref/mod#private-modules |
GOCACHE | 存储编译后信息的缓存目录 |
GODEBUG | 启用各种调试工具。详见https://go.dev/doc/godebug。 |
GO111MODULE | 用于控制 Go Modules 的行为,可以设置为 on、off 或 auto。如果设置为 on,则 Go Modules 模式将被启用;如果设置为 off,则禁用 Go Modules 模式;如果设置为 auto,则根据当前目录下是否存在 go.mod 文件来判断是否启用 Go Modules 模式。在 Go 1.13 中,GO111MODULE 的默认值为 auto,即自动启用 Go Modules 模式。这意味着,如果在项目目录下存在 go.mod 文件,则会自动启用 Go Modules 模式,否则会使用传统的 GOPATH 模式。 |
GOINSECURE | 表示以 glob 模式表示的模块路径,多个使用逗号分隔。支持以不安全的 HTTP 连接下载模块 |
GOMAXPROCS | 用于控制 Go 程序中可同时执行的最大 CPU 数量。默认值为 CPU 核心数量。可以通过设置 GOMAXPROCS 的值来提高程序的并发性能。 |
以上仅部分环境变量,查看所有 Go 环境变量可使用命令:go help environment
。
参考文献
Command Documentation
About the go command
go command - cmd/go