这些常用的 Go CLI 命令,新手 Gopher 应该掌握

开发 开发工具
Go 提供了非常多简单又实用的命令行工具,本文仅介绍了一些在项目开发中最可能被用到的命令。想获取更多 Go 命令?

本文将介绍一些最基本的 Go 命令行命令。如果你刚接触 Go 语言,那你有必要记住它们,因为这些命令是 Go 开发者日常工作中所必备的。

Go version

开始 Go 项目前,我们应该确保开发机上已经安装好了 Go 编译器。

通过执行以下命令可以查看安装的 Go 版本信息。

$ go version
go version go1.18 darwin/amd64

Go env

如果我们可能想查看一些 Go 相关的环境变量,例如 GOROOT 或者 GOPATH。你可以执行这个命令。

$ go env

当你想对某个环境变量进行更改,例如修改 Go 代理,你可以这样做。

$ go env -w GOPROXY=https://goproxy.io,direct

go mod

在你开始建立第一个 Go 程序时,在项目根目录下,你应该运行这样的命令。

$ go mod init <your project name>

例如

$ go mod init demo/firstProject

此时,项目根目录将增加 go.mod 文件,它的内容如下

$ cat go.mod 
module demo/firstProject

go 1.18

如果你有其他语言的经验,那么 go.mod 类似于 Python 中的 requirements.txt,Java 中的 pom.xml,它用于管理项目的依赖包。

go get

当项目中有引入外部库,应该执行 go get 命令。

$ go get <package name>

例如我们需要使用日志库 logrus,执行以下命令会将该库源代码下载至 mod cache 中,并将在 go.mod  文件中记录该库的依赖情况。

$ go get github.com/sirupsen/logrus
$ cat go.mod
module demo/firstProject

go 1.18

require (
github.com/sirupsen/logrus v1.9.0 // indirect
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
)

go run/build

当我们已经编写了一些 Go 代码,并希望在本地运行它以查看程序表现是否符合预期。

$ go run .

当然,我们也可以使用 go build 命令。

$ go build -o <name of binary> <packages>
$ ./<name of binary>

两种命令方式都需要编译的过程,实质并无什么区别。go run只是将编译得到的可执行文件执行后销毁,而 go build 是将可执行文件保留下来,并不直接执行。

go test

如果你编写了一堆单元测试代码(在以_test.go 结尾的文件中),你想运行它们,只需要执行以下语句。

$ go test

go mod tidy

当项目中尝试引入过多个三方包,而其中部分包我们并不需要了,那就应该从代码依赖中删除。

$ go mod tidy

go vet

当完成了功能开发后,应该使用以下命令来帮助我们检测程序中可能存在问题的代码。更多 vet 知识可以查看文章Go工具之vet——静态诊断器。

$ go vet

go fmt

当完成了功能开发,准备提交代码到公共仓库。我们应该确保项目代码遵循统一的官方代码风格。

$ go fmt

当然更好的方式其实是使用检查套件,具体可以参见文章Gopher一定要会的代码自动化检查。

总结

Go 提供了非常多简单又实用的命令行工具,本文仅介绍了一些在项目开发中最可能被用到的命令。

想获取更多 Go 命令?可以执行 $ go 或者 $ go tool 获取命令列表,执行 go help <command>可了解特定命令的更多信息。

责任编辑:武晓燕 来源: Golang技术分享
相关推荐

2010-07-02 09:17:29

技能运维人员

2019-12-24 16:52:22

Go语言腾讯TM函数

2011-02-16 09:26:49

2023-11-10 11:06:36

Linux命令

2023-09-11 10:06:11

Linux命令

2021-04-27 15:28:32

程序员技能开发者

2018-05-03 08:45:58

Linux命令

2020-11-20 06:50:19

Linux命令运维

2020-01-27 16:28:57

开发命令远程服务器

2023-04-07 16:11:56

前端开发

2022-04-19 09:38:20

Kubernetes云原生容器

2022-08-23 12:21:50

Linux命令

2010-02-04 16:56:24

2009-11-26 13:57:24

Cisco路由器命令

2023-08-31 07:33:41

GopherCarolexcel

2016-06-22 09:30:58

Linux命令新手

2020-02-11 12:17:53

开发命令

2023-10-06 22:43:53

cronLinux系统

2022-01-26 00:00:00

GoGopher语言

2010-08-02 16:20:31

ICMP协议
点赞
收藏

51CTO技术栈公众号