go env command

这篇文章介绍了goenv这个工具,它用于查看和设置Go语言的环境变量。文章详细讲解了goenv的使用方法,包括默认输出格式、JSON格式输出、环境变量的查看、设置、取消和帮助信息。还列出了常见的Go环境变量及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 程序的依赖管理、编译构建和运行环境等方面。

常见环境变量有:

通用环境变量

变量含义
GOROOTGo 的安装目录。这个目录包含了 Go 语言的标准库、工具链、编译器以及其他相关文件和资源。
GOPATH工作区所在目录,默认为 $HOME/go。GOPATH 包含两子目录,GOPAHT/bin 存放 go install 安装的程序。GOPATH/pkg 存放 go get 下载的依赖包。
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 模式。
GOOS编译代码的操作系统名称。如 linux, windows, darwin 等。
GOARCH计算机处理器架构。如 amd64, 386, arm, ppc64 等。
GOPROXY以英文逗号分隔的 Go 模块代理地址,用于加速下载 Go 模块。一般以 ,direct 结尾,比如 GOPROXY=https://goproxy.io,direct,那么意味着在无法从第一个指定的代理地址(此例为 https://goproxy.io)下载所需模块时,会直接从官方源码库下载
GOSUMDB要使用的校验和数据库的名称以及可选的公钥和URL。详见 https://golang.org/ref/mod#authenticating
GOPRIVATE
GONOPROXY
GONOSUMDB
以 glob 模式表示的模块路径,多个使用逗号分隔。这些模式应该总是直接获取,不走代理拉,且不参与校验。详见 https://golang.org/ref/mod#private-modules
GOCACHE存储编译后信息的缓存目录
GOMODCACHE指定 Go 模块的缓存目录。当我们使用 Go 模块管理工具(如 go mod)下载和管理依赖包时,这些包会被缓存在 GOMODCACHE 指定的目录。这样可以避免重复下载依赖包,提高依赖包的下载速度和效率。通常为 GOATH/pkg/mod。
GODEBUG启用各种调试工具。详见 https://go.dev/doc/godebug。
GOINSECURE表示以 glob 模式表示的模块路径,多个使用逗号分隔。支持以不安全的 HTTP 连接下载模块
GOMAXPROCS控制 Go 程序可同时执行的最大 CPU 数量。默认为 CPU 核心数,可通过设置 GOMAXPROCS 的值来提高程序并发性能。
GOENVGo 环境变量配置文件的位置。不能使用 ‘go env -w’ 设置。若设置 GOENV=off 将禁用默认配置文件。

由 Go 工具链计算得出的变量

这些信息是 Go 工具链能够检测到的附加信息,但它们并不是从系统环境变量直接读取的。

变量含义
GOEXE可执行文件名后缀(Windows上为 .exe,其他系统上为空)。
GOMOD主模块 go.mod 的绝对路径。如果启用了模块感知模式,但没有 go.mod,则 GOMOD 将为 os.DevNull(类 Unix 系统上为“/dev/null”,Windows 上为“NUL”)。如果禁用模块感知模式,则 GOMOD 将为空字符串。
GOTOOLDIRGo 工具(compile, cover, doc 等)的安装目录。
GOVERSION已安装的 Go 版本,由 runtime.Version() 报告。

以上仅为 Go 部分环境变量,查看所有环境变量可使用命令 go help environment


参考文献

Command Documentation
About the go command
go command - cmd/go
help package - cmd/go/internal/help

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值