Go 终端命令手册

Posted 技术能量站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 终端命令手册相关的知识,希望对你有一定的参考价值。

1. 环境命令

D:\\Project\\wxw-go>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\\Users\\wxw\\AppData\\Local\\go-build
set GOENV=C:\\Users\\wxw\\AppData\\Roaming\\go\\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\\Users\\wxw\\go\\pkg\\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\\Users\\wxw\\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn
set GOROOT=D:\\Installed\\go1.17.1
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\\Installed\\go1.17.1\\pkg\\tool\\windows_amd64
set GOVCS=
set GOVERSION=go1.17.1
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\\Project\\wxw-go\\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\\Users\\wxw\\AppData\\Local\\Temp\\go-build1363113370=/tmp/go-build -gno-reco
rd-gcc-switches

命令说明:

  1. GOROOT:具体GO语言在硬盘上安装的位置,比如D:/GO
  2. GOPATH:未来使用go install安装第三方工具包时,都会安装在GOPATH指定文件夹下的src或bin目录下,比如C:/Users/Administrator/Go

1.1 修改GOPROXY代理

go env -w key=value
// 比如
go env -w GOPROXY="https://goproxy.cn,direct"
go env -w GOPROXY="https://goproxy.io"
go env -w GOPROXY="https://mirrors.tencent.com/go/"
go env -w GO111MODULE=on

关于GO111MODULE的介绍

GO111MODULE有三个值:off, on和auto(默认值):

  1. GO111MODULE=off
    go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本的通过vendor目录或者GOPATH模式来查找。
  2. GO111MODULE=on
    go命令行会使用modules,不会去GOPATH目录下查找。
  3. GO111MODULE=auto(默认值)
    go命令行将会根据当前目录来决定是否启用module功能。下面两种情形将启用module功能:
    • 当前目录在GOPATH/src之外且该目录包含go.mod文件
    • 当前文件在包含go.mod文件的目录下面。

(1)Windows系统中设置GO111MODULE
直接在环境变量中添加一个变量,变量名为GO111MODULE,变量值为on、off、auto中的一个。

(2)Linux系统设置GO111MODULE
修改/etc/profile文件,在文件尾部添加以下条目中的一个,然后执行 source /etc/profile 命令即可:

export GO111MODULE=on
export GO111MODULE=off
export GO111MODULE=auto

(3)使用 go env -w 设置GO111MODULE
当按照的go版本大于等于1.13时,可以直接使用go env -w 命令非常方便的设置变量。go env -w 命令在用户级别修改变量,被修改的信息默认保存在$HOME/.config/go/env文件中。
ps:1.16.5 版本,用 go env -w 也有不生效的情况。

#查看GO111MODULE的当前值
go env

#设置GO111MODULE的值
#开启模块支持,无论什么情况,go命令都会使用module
go env -w GO111MODULE=on
#关闭模块支持,无论什么情况,go命令都不会使用module
go env -w GO111MODULE=off
#默认值,go命令根据当前目录决定是否启用module功能
#即当前目录在GOPATH/src之外且该目录包含go.mod文件时开启module功能;否则继续使用GOPATH
go env -w GO111MODULE=auto

1.2 修改gopath 工程目录

go env -w GOPATH="D:\\Project\\golang"

2. 终端命令

假如你已安装了golang环境,你可以在命令行执行go命令查看相关的Go语言命令:

go-test-study root$ go
Go is a tool for managing Go source code.
 
Usage:
 
        go <command> [arguments]
 
The commands are:
 
        bug         start a bug report
        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         add dependencies to current module and install them
        install     compile and install packages and dependencies
        list        list packages or modules
        mod         module maintenance
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages
 
Use "go help <command>" for more information about a command.
 
Additional help topics:
 
        buildmode   build modes
        c           calling between Go and C
        cache       build and test caching
        environment environment variables
        filetype    file types
        go.mod      the go.mod file
        gopath      GOPATH environment variable
        gopath-get  legacy GOPATH go get
        goproxy     module proxy protocol
        importpath  import path syntax
        modules     modules, module versions, and more
        module-get  module-aware go get
        module-auth module authentication using go.sum
        module-private module configuration for non-public modules
        packages    package lists and patterns
        testflag    testing flags
        testfunc    testing functions
 
Use "go help <topic>" for more information about that topic.

指令说明:

go env用于打印Go语言的环境信息。
go run命令可以编译并运行命令源码文件。
go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。
go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包。
go install用于编译并安装指定的代码包及它们的依赖包。
go clean命令会删除掉执行其它命令时产生的一些文件和目录。
go doc命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。
go test命令用于对Go语言编写的程序进行测试。
go list命令的作用是列出指定的代码包的信息。
go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。
go vet是一个用于检查Go语言源码中静态错误的简单工具。
go tool pprof命令来交互式的访问概要文件的内容。
go fmt 格式化代码

go mod 的包管理

go mod init:初始化go mod, 生成go.mod文件,后可接参数指定 module 名,上面已经演示过。
go mod download:手动触发下载依赖包到本地cache(默认为$GOPATH/pkg/mod目录)
go mod graph: 打印项目的模块依赖结构
go mod tidy :添加缺少的包,且删除无用的包
go mod verify :校验模块是否被篡改过
go mod why: 查看为什么需要依赖
go mod vendor :导出项目所有依赖到vendor下
go mod edit :编辑go.mod文件,接 -fmt 参数格式化 go.mod 文件,接 -require=golang.org/x/text 添加依赖,接 -droprequire=golang.org/x/text 删除依赖,详情可参考 go help mod edit
go list -m -json all:以 json 的方式打印依赖详情

go help mod
 
-----
Go mod provides access to operations on modules.
 
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality.
 
Usage:
 
        go mod <command> [arguments]
 
The commands are:
 
        download    download modules to local cache
        edit        edit go.mod from tools or scripts
        graph       print module requirement graph
        init        initialize new module in current directory
        tidy        add missing and remove unused modules
        vendor      make vendored copy of dependencies
        verify      verify dependencies have expected content
        why         explain why packages or modules are needed
 
Use "go help mod <command>" for more information about a command.

指令说明

以上是关于Go 终端命令手册的主要内容,如果未能解决你的问题,请参考以下文章

装13手册MAC常用终端命令及快捷键操作

golang 终端go命令使用

Linux命令-完整手册

Linux命令-完整手册

Golanggolang 终端命令

GoLanggolang 终端命令