Go语言自带的命令行工具非常强大,是开发者日常工作中不可或缺的助手。本章将详细介绍常用的Go命令行工具及其使用场景,帮助你更高效地开发、构建、测试和管理Go项目。
一、go version
查看当前安装的Go版本:
go version
输出示例:
go version go1.21.5 linux/amd64
二、go env
查看当前Go的环境变量设置:
go env
输出示例(部分):
GOOS="linux"
GOARCH="amd64"
GOPATH="/home/user/go"
GOROOT="/usr/local/go"
你也可以查看单个变量,如:
go env GOPATH
三、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的官方风格:
go fmt main.go
通常配合 IDE 自动完成,也可以一次格式化整个项目:
go fmt ./...
七、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
结尾):
go test
带上详细输出:
go test -v
运行指定测试文件:
go test mypackage/myfile_test.go
十、go clean
清理编译生成的缓存文件或可执行文件:
go clean
可配合参数使用:
go clean -modcache # 清理模块缓存
十一、go doc
查看包或函数的文档说明(本地):
go doc fmt
go doc fmt.Println
十二、go list
列出包信息和依赖信息:
go list
go list -m all # 列出所有依赖模块
十三、go tool
查看所有可用的底层Go工具:
go tool
可以用于深入分析性能、汇编等内容(如 go tool pprof
、go tool compile
等)。
小结:常用Go命令速查表
命令 | 功能说明 |
go run | 编译并运行程序 |
go build | 编译生成可执行文件 |
go install | 编译并安装到 $GOPATH/bin |
go fmt | 格式化源代码 |
go test | 执行单元测试 |
go mod | 管理模块依赖 |
go get | 获取远程依赖包(旧方式) |
go doc | 查看文档 |
go env | 查看Go环境变量 |
go version | 查看Go版本 |
这就是Go命令行工具的主要使用方式。掌握它们,将大大提升你的开发效率。