常用命令

一、常用命令汇总

go version: 获取Go版本 
go env: 查看Go环境变量 
go help: 查看Go帮助命令 
go get: 获取远程包(需提前安装git或hg) 
go build: 编译并生成可执行程序 
go run: 直接运行程序 
go fmt: 格式化源码 
go install: 编译包文件以及整个程序 
go test: go原生提供的单元测试命令 
go clean: 移除当前源码包和关联源码包里编译生成的文件 
go tool: 升级Go版本时,修复旧版代码 
godoc -http:80:开启一个本地80端口的web文档 
gdb 可执行程序名:调试Go编译出来的文件

使用格式:

go command [arguments]

二、常见的命令详解

1、go build

1、go build ,它可以启动编译,把我们的包和相关的依赖编译成 一个可执行的文件 。
2、如果是main包,执行go build之后,会在当前目录下生成一个可执行文件。
3、演示:

// 编译当前目录为一个可执行文件 
go build . 
// 编译hello.go文件为一个可执行文件 
go build hello.go
2、go run

1、go build 是先编译,然后我们再执行可以执行文件来运行我们的程序,需要两步。
2、go run 这个命令就是可以把这两步合成一步的命令,节省了我们录入的时间

3、go get

1、go get用来获取远程仓库中的包,使用该命令前必须配置GOPATH,而且依据不同的源码网站,还要安装不同的版本管理工具,比如从github上使用go get需要额外安装git。
2、go get本质上可以理解为通过源码工具clone下代码后,执行了go install。

go的包管理

一、go的三种包管理

推荐选择 go module 的包管理方式

go path 
	在 1.5 版本之前,所有的依赖包都是存放在 GOPATH 下,没有版本控制。
	这种方式的最大的弊端就是无法实现包的多版本控制,比如项目 A 和项目 B 依赖于不同版本的 package,如果package 没有做到完全的向前兼容,往往会导致一些问题。
go vendor
	1.5 版本推出了 vendor 机制。所谓 vendor 机制,就是每个项目的根目录下可以有一个 vendor 目录,里面存放了该项目的依赖的 package。 go build 的时候会先去 vendor 目录查找依赖,如果没有找到会再去GOPATH 目录下查找。
go module
1.11 版本推出 modules 机制,简称 mod。该模式通过mod.go文件管理依赖关系

二、go里面的前置知识

1、两个命令
安装二进制可执行文件推荐使用go install

go install xxx (安装xxx第三方二进制可执行文件 ) 
go install 类似 go build , 将生成的可执行文件放到 【$GOPATH/bin】 目录中
go get xxx (下载xxx第三方依赖包并安装)
go get 是下载并安装,即 git clone + go install ,将clone的源码放到 【$GOPATH/src】 中

2、两个路径

GOROOT:go的安装目录,类似java的jdk,存放一些内置的开发包和工具。
GOPATH:go指定的工作空间用于保存go项目的代码和第三方依赖包。

三、go mod命令的使用

1、go help mod查看相关帮助命令、

2、go mod的常用命令

go mod init:初始化modules 
go mod download:下载modules到本地cache 
go mod edit:编辑go.mod文件,选项有-json、-require和-exclude,可以使用帮助go help mod edit 
go mod graph:以文本模式打印模块需求图 
go mod tidy:检查,删除错误或者不使用的modules,下载没download的package 
go mod vendor:生成vendor目录 
go mod verify:验证依赖是否正确 
go mod why:查找依赖 
go test 执行一下,自动导包 
go list -m 主模块的打印路径 
go list -m -f={{.Dir}} print主模块的根目录 
go list -m all 查看当前的依赖和版本信息