系统环境Golang语言社区

Golang命令

2016-06-25  本文已影响819人  丶沙工

Go命令教程 (访问密码:kmNYam)
Go命令教程

    build       compile packages and dependencies
    clean       remove object files
    doc         show documentation for package or symbol
    env         print Go environment information
    fix         run go tool fix on packages
    fmt         run gofmt on package sources
    generate    generate Go files by processing source
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         run go tool vet on packages
  1. go build
    go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包。
    go build [-o output] [-i] [build flags] [packages]
  1. go clean
    执行go clean命令会删除掉执行其它命令时产生的一些文件和目录,包括:
  1. go doc
    go doc命令可以打印附于Go语言程序实体上的文档。我们可以通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的。
    go doc [-u] [-c] [package|[package.]symbol[.method]]
  1. go env
    用于打印Go语言的环境信息。
    go env [var ...]
lbb@debian:~$ go env
GOARCH="amd64" #程序构建环境的目标计算架构。
GOBIN="" #存放可执行文件的目录的绝对路径。
#GOCHAR="" #程序构建环境的目标计算架构的单字符标识。1.5以后的版本没有了
GOEXE="" #可执行文件的后缀。
GOHOSTARCH="amd64" #程序运行环境的目标计算架构。
GOHOSTOS="linux" #程序运行环境的目标操作系统。
GOOS="linux" #程序构建环境的目标操作系统。
GOPATH="/home/lbb/work/go:/home/lbb/work/go-test" #工作区目录的绝对路径。
GORACE="" #用于数据竞争检测的相关选项。
GOROOT="/usr/local/go" #Go语言的安装目录的绝对路径。
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" #Go工具目录的绝对路径。
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1" #指明cgo工具是否可用的标识。

Go语言的GOPATH与工作目录详解

  1. go fix
    用来修复以前老版本的代码到新版本。命令go fix其实是命令go tool fix的简单封装。这甚至比go fmt命令对gofmt命令的封装更简单。像其它的Go命令一样,go fix命令会先对作为参数的代码包导入路径进行验证,以确保它是正确有效的。
    go fix [packages]
  1. go fmt
    在go中,代码则有标准的风格
    go fmt [-n] [-x] [packages]
  1. go generate
    go generate是一个你可以用来自动自成Go代码的命令,你可以结合例如jsonenums(一个用于为枚举类型自动生成JSON编组样板代码的类库)这样的元编程来使用go generate快速自动实现重复乏味代码的编写。在Go标准类库里面已经有大量可以用于解析AST的接口,而AST使得编写元编程工具更简单,更容易。

  2. go get
    命令go get可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。
    go get [-d] [-f] [-fix] [-insecure] [-t] [-u] [build flags] [packages]

修改git clone命令, 添加 --progress选项, 使其输出进度
修改cmd.Run()执行的地方, 使其将输出定位到标准输出流上
  1. go install
    go install用于编译并安装指定的代码包及它们的依赖包。实际上,go install命令只比go build命令多做了一件事,即:安装编译后的结果文件到指定目录。
    go install [build flags] [packages]

  2. go list
    go list命令的作用是列出指定的代码包的信息。与其他命令相同,我们需要以代码包导入路径的方式给定代码包。被给定的代码包可以有多个。这些代码包对应的目录中必须直接保存有Go语言源码文件,其子目录中的文件不算在内。否则,代码包将被看做是不完整的。
    go list [-e] [-f format] [-json] [build flags] [packages]

  3. go run
    go run命令可以编译并运行命令源码文件。由于它其中包含了编译动作,因此它也可以接受所有可用于go build命令的标记。除了标记之外,go run命令只接受Go源码文件作为参数,而不接受代码包。与go build命令和go install命令一样,go run命令也不允许多个命令源码文件作为参数,即使它们在同一个代码包中也是如此。而原因也是一致的,多个命令源码文件会都有main函数声明。
    go run [build flags] [-exec xprog] gofiles... [arguments...]
    如果命令源码文件可以接受参数,那么在使用go run命令运行它的时候就可以把它的参数放在它的文件名后面,像这样:go run showds.go -p ~/golang/goc2p

  4. go test
    go test [build/test flags] [packages] [build/test flags & test binary flags]

  1. go tool
    go tool [-n] command [args...]
    go tool pprof命令来交互式的访问概要文件的内容。命令将会分析指定的概要文件,并会根据我们的要求为我们提供高可读性的输出信息。
    go tool cgo这个工具可以使我们创建能够调用C语言代码的Go语言源码文件。这使得我们可以使用Go语言代码去封装一些C语言的代码库,并提供给Go语言代码或项目使用。

  2. go version
    查看Go版本

  3. go vet
    go vet是一个用于检查Go语言源码中静态错误的简单工具
    go vet [-n] [-x] [build flags] [packages]
    go vet命令是go tool vet命令的简单封装。它会首先载入和分析指定的代码包,并把指定代码包中的所有Go语言源码文件和以“.s”结尾的文件的相对路径作为参数传递给go tool vet命令。


*标记-n会让命令在执行过程中打印用到的系统命令,但不会真正执行它们。

*标记-x既打印命令又执行命令。

*标记-r,包括当前代码包的所有依赖包的上述目录和文件。

上一篇 下一篇

猜你喜欢

热点阅读