概述

Go语言有一套完整的操作命令,非常实用,掌握它可以事半功倍。

将详细讲解以下命令(便于快速查找):

  • go bug
  • go build
  • go install
  • go get
  • go mod
  • go run
  • go clean
  • go fmt
  • go list
  • go version
  • go env

直接输入go,给出了全部命令,如下所示:

go

若想更加详细了解某个命令的具体用法,只需输入”go help 命令”,例如:

go help install

从上面可看到描述非常详细。同时官方也给出了非常详细的文档说明


查看 go 版本

go version

查看 go 的环境变量

go env

GOROOT: 表示 Go 开发包的安装目录

GOPATH: 一个环境变量,它使用绝对路径提供项目的工作目录
在 Go 1.8 版本之前,GOPATH 环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录,参见下表。

在 GOPATH 指定的工作目录下,代码总是会保存在 $GOPATH/src 目录下。在工程经过 go build、go install 或 go get 等指令后,会将产生的二进制可执行文件放在 $GOPATH/bin 目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下

在多项目工程中使用GOPATH

上面设置 GOPATH 都是修改的系统全局的环境变量来实现的,而这可能会导致当前项目错误引用了其他目录的 Go 源码文件从而造成编译输出错误的版本或编译报出一些无法理解的错误提示,比如,将某项目代码保存在 /home/davy/projectA 目录下,将该目录设置为 GOPATH。随着开发进行,需要再次获取一份工程项目的源码,此时源码保存在 /home/davy/projectB 目录下,如果此时需要编译 projectB 目录的项目,但开发者忘记设置 GOPATH 而直接使用命令行编译,则当前的 GOPATH 指向的是 /home/davy/projectA 目录,而不是开发者编译时期望的 projectB 目录。编译完成后,开发者就会将错误的工程版本发布到外网。

因此,建议大家无论是使用命令行或者使用集成开发环境编译 Go 源码时,GOPATH 跟随项目设定。在 Jetbrains 公司的 GoLand 集成开发环境(IDE)中的 GOPATH 设置分为全局 GOPATH 和项目 GOPATH,如下图所示。

设置当前目录为GOPATH

export GOPATH=`pwd`

然后在对应项目下执行 go mod init 生成 .mod 文件,就可以使用 go install hello 进行编译并生成二进制文件保存到 bin 目录中

GOBIN 表示编译器和链接器的安装位置

GOOS 表示目标操作系统