Golang 常用命令详解
前 言
在安装好go后,在终端命令行使用go help指令可以查看go的所有用法:
go命令的格式是:go <command> [arguments]。其中命令选项包括:
| 命令 | 作用 |
|---|---|
| bug | 输出一个bug报告 |
| build | 编译包和依赖项 |
| clean | 删除对象文件和缓存文件 |
| doc | 展示包或符号的文档 |
| env | 打印go的环境信息 |
| fix | 更新包使用的API |
| fmt | gofmt(格式化)包的源代码 |
| generate | 生成go文件的处理源程序 |
| get | 下载并安装包和依赖项 |
| install | 编译并安装包和依赖项 |
| list | 列出已有的包或模块 |
| mod | 管理模块(包和依赖项) |
| run | 编译并运行go程序 |
| test | 测试包 |
| tool | 运行指定的go工具 |
| version | 输出go版本 |
| vet | 报告包中可能存在的错误 |
我们常用的命令是version、run、fmt、get、build、list。
version
version这个命令我们再熟悉不过了,几乎所有的命令行界面应用都有这个功能,它输出一个软件的版本信息到标准输出。通常我们用这个命令来检查一个软件是否安装成功
不过不是所有的软件都是使用version来检查版本的,比如
run 和 build
当编写完一个go程序,或者是一个go项目的时候,比如“hello.go”,就可以使用go run hello.go来执行代码。hello.go:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
go run hello.go执行结果:

可以看到,使用go run命令可以运行一个go程序。而go build的作用是用于工程管理的调试。它可以生成一个二进制文件:
与install不同的是,build编译由导入路径命名的包及其依赖项,但不会安装结果。如果要构建的参数是单个目录中的.go文件列表,则build会将其视为指定单个程序包的源文件列表
当编译单个主程序包时,build将生成的可执行文件写入以第一个源文件命名的输出文件或源代码目录。当编译多个软件包或单个非主软件包时,build会编译软件包,但会丢弃生成的对象,仅用作检查是否可以构建软件包
我们还可以在build中使用-o,后面跟着生成的可执行文件或对象的输出路径
fmt
go fmt命令是gofmt命令的简单封装。go fmt命令本身可以接受两个标签。-n仅仅打印出内部使用的gofmt命令及其标记和参数而不真正执行它。 -x则既打印又执行这个命令。在go fmt命令程序内部,会在其调用的gofmt命令加上标记-l和-w,并以指定代码包中的所有Go语言源码文件的路径作为参数。
get
当学习go语言到了一定层次,就像学习其他语言一样,我们就需要开始借助第三方包帮助我们完成更大的项目。所以go get命令就应运而生。get解析并将依赖项添加到当前开发模块,然后构建并安装它们。go get的运行规则大概是这样的:
- 依赖项版本问题
对于每个指定的包或包模块,get需要决定使用哪个版本。默认情况下,get会查找最新的标记发行版本。如果没有标记发行版本,get将查找最新标记的预发布版本。如果根本没有标记版本,get会查找最新的提交版本 - 确认版本之后,下载、构建和安装指定的包,默认下载的位置是
$GOPATH/src。在go run某份代码的时候,如果需要import第三方包,就会从这里读取
list
使用 go list 可以列出命名包,每行一个。最常用的标志是-f和-json,它们控制每个包的输出形式。通过go list,我们可以清楚地了解所使用包的具体信息
本文转载自:https://blog.csdn.net/lu1206252007/article/details/103712981

浙公网安备 33010602011771号