# 下载

目录选择
cd /usr/local/
root用户
su
下载
wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz
解压
tar -zvxf go1.9.2.linux-amd64.tar.gz

# 添加PATH环境变量

vi /etc/profile
# add go
export PATH=$PATH:/usr/local/go/bin

# 建立Go的工作空间

workspace,也就是GOPATH环境变量指向的目录

GO代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:
src ---- 里面每一个子目录,就是一个包。包内是Go的源码文件
pkg ---- 编译后生成的,包的目标文件
bin ---- 生成的可执行文件。
这里,我们在/home目录下, 建立一个名为gopath(名字都可以)的文件夹,
然后再建立三个子文件夹(子文件夹名必须为src、pkg、bin)。
cd /home
mkdir gopath
cd gopath(cd到工作空间中)
mkdir src
mkdir pkg
mkdir bin

# 设置GOPATH环境变量

vi /etc/profile
然后加入下面这行:
export GOPATH=/home/gopath
保存后,执行以下命令
source /etc/profile

# 新建go代码

cd /home/gopath/src/hello
vi helloworld.go 文件
代码如下:
package main
import "fmt"
func main() {
    fmt.Printf("Hello, world.\n")
}
#package main
则告诉我们它是一个可独立运行的包,它在编译后会产生可执行文件。除了main包之外,其它的包最后都会生成*.a文件(也就是包文件)并放置在$GOPATH/pkg/$GOOS_$GOARCH中($GOPATH/pkg/darwin_amd64)
#Printf #import "fmt"
我们调用了一个函数Printf,这个函数来自于fmt包,所以我们在第三行中导入了系统级别的fmt包:import "fmt"。

# 编译生成go程序

在任意文件路径下,运行:
go install hello

也可以进入项目(应用包)的路径,然后运行:
go install

ps:在编译生成go程序的时,go实际上会去两个地方找程序包:
GOROOT下的src文件夹下,以及GOPATH下的src文件夹下。

在程序包里,自动找main包的main函数作为程序入口,然后进行编译。

# 运行go程序

在/home/gopath/bin/下,会发现出现了一个hello的可执行文件,用如下命令运行:
./hello


ok 已上可以完成运行。