Go语言自带的命令行工具非常强大,是开发者日常工作中不可或缺的助手。本章将详细介绍常用的Go命令行工具及其使用场景,帮助你更高效地开发、构建、测试和管理Go项目。
一、go version
查看当前安装的Go版本:
go version
输出示例:
go version go1.21.5 linux/amd64
二、go env
查看当前Go的环境变量设置:
goenv
输出示例(部分):
GOOS="linux"GOARCH="amd64"GOPATH="/home/user/go"GOROOT="/usr/local/go"
你也可以查看单个变量,如:
goenvGOPATH
三、go run
编译并立即运行Go程序,适合快速测试:
go run main.go
也可运行多个文件:
go run main.go utils.go
四、go build
将Go源文件编译为可执行文件(不运行):
go build main.go
编译整个模块:
go build
构建后在当前目录生成可执行文件(Windows为 .exe,其他系统为无扩展名的可执行文件)。
五、go install
编译并安装Go程序或包:
go install
生成的可执行文件会被放到 $GOPATH/bin 或模块模式下的 GOBIN 路径中。
六、go fmt
对Go源代码进行格式化,符合Go的官方风格:
gofmtmain.go
通常配合 IDE 自动完成,也可以一次格式化整个项目:
gofmt./...
七、go mod
Go Modules 是Go 1.11之后引入的官方包管理系统。
go mod init myproject
go mod tidy
go mod graph
go list -m all
八、go get(Go 1.16及之前)
在老版本中用于获取远程包:
go get github.com/gin-gonic/gin
在Go 1.17及之后,go get 只用于添加工具依赖,添加库依赖建议使用:
go install
或使用 go mod tidy 来解析 import 自动下载。
九、go test
运行测试代码(文件名以 _test.go 结尾):
gotest
带上详细输出:
gotest-v
运行指定测试文件:
gotestmypackage/myfile_test.go
十、go clean
清理编译生成的缓存文件或可执行文件:
go clean
可配合参数使用:
go clean -modcache# 清理模块缓存
十一、go doc
查看包或函数的文档说明(本地):
go docfmtgo doc fmt.Println
十二、go list
列出包信息和依赖信息:
go listgo list -m all# 列出所有依赖模块
十三、go tool
查看所有可用的底层Go工具:
go tool
可以用于深入分析性能、汇编等内容(如 go tool pprof、go tool compile 等)。
小结:常用Go命令速查表
这就是Go命令行工具的主要使用方式。掌握它们,将大大提升你的开发效率。