下载和安装
- 下载
– 在官网下载安装包然后安装 - 安装
- 一路默认安装即可
- 然后在终端运行
go version
,如果显示类似下面的信息,表明安装成功
go version go1.10.1 darwin/amd64
- 如果没有出现上面的信息或者出现了其他的报错信息,请自行查询解决
工作空间,GOROOT和GOPATH和bin的设置
开始写go项目代码之前,需要创建一个工作空间,并在环境变量中指明工作空间的目录
我们在 $HOME($HOME是每个电脑下的用户主目录,每个电脑可能不同,可以在终端运行
echo $HOME
获取,我们这里就直接使用 $HOME,)目录下创建一个工作空间go,所以工作空间的目录就是 $HOME/go. (如果你想在一个不同的目录下创建工作空间,那你需要设置一下GOPATH 环境变量和bin环境变量)设置 GOPATH 环境变量
- 编辑你的 ~/.bash_profile(在终端中运行 vi ~/.bash_profile即可) 来添加下面这行代码(如果你找不到 .bash_profile,那自己创建一个就可以了)
export GOPATH=$HOME/go
- 保存然后退出你的编辑器。然后在终端中运行下面命令
source ~/.bash_profile
设置bin可执行文件目录
在go官方文档中,是这样设置go的bin二进制文件目录路径的
- 注意,设置GOBIN路径以便当运行
go install
时产生二进制文件
export GOBIN=$HOME/go/bin
- 注意,设置GOBIN路径以便当运行
而在其他网上说明文档中,直接设置path
``` export PATH=$HOME/go/bin ```
我的 bash_profile 文件中是这样的
export GOPATH=$HOME/go export PATH=$HOME/go/bin:$PATH
如果你是在mac os x 下直接通过安装包安装的,那么不用设置 bin 也可以,因为通过安装包安装时(除非你的工作空间不在$HOME/go而在其他你偏好的文件目录下,这个时候是需要设置bin目录的),已经在 /etc/paths.d/go下指定了 bin 的目录
$ cd /etc/paths.d $ ls go $ cat go /usr/local/go/bin
GOROOT 默认是在 /usr/local/go,如果没有,可以在 bash_profile 文件中设置
export GOROOT=/usr/local/go
然后退出编辑器,然后运行
source ~/.bash_profile
命令即可
第一个go程序
- 进入到工作空间中(我的是
$HOME/go
, 所以使用cd $HOME/go
命令直接进入) - 然后创建一个目录 src/hello(
mkdir src/hello
), - 然后进入到该目录中(
cd src/hello
), - 然后使用
vi hello.go
或者其他方式创建一个 hello.go文件, - 然后打开该文件进行编辑
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
- 保存后退出
- 然后在该hello.go文件目录下运行
go build
, 这个命令会创建一个命名为 hello 的可执行的文件, - 如果执行命令
ls
,你会看到这个可执行文件就在hello.go的旁边
$ go build hello.go
$ ls
hello hello.go
- 然后执行命令
./hello
$ ./hello
hello, world!
如果看到 hello, world
, 说明程序正确运行,否则有错
- 可以运行
go install hello
将二进制文件安装到工作空间 ($HOME/go
) 的bin目录中,或者go clean hello
将该二进制文件删掉 - 运行
go install hello
命令之后,运行ls $GOPATH/bin
,可以看到此时hello已经在 bin 目录中, 这个时候,你在系统的任何目录下运行hello
命令,都会打印出hello, world
$ pwd
$HOME/go/src/hello
$ go install hello
$ ls $HOME/bin
hello
$ cd /Users/
$ hello
hello, world!
- 如果运行hello的结果是
-bash: hello: command not found
这样的结果,那么你可能需要在 /.bash_profile中指定一下PATH,(例如,在./bash_profile中添加export PATH=$HOME/go/bin:$PATH
, 然后运行source ~/.bash_profile
,然后再次运行go install hello
,然后再运行hello
,应该会打印出hello, world!
的结果)
删除 go
- 当你需要删除 go
- 删除 /usr/local目录下的 go
- 删除 PATH 环境变量中的 bin
- 在/etc/profile 或者 $HOME/.profile 或者 $HOME/.bahs_profile中删除bin的设置
- 如果是通过 mac os x 的安装包安装的,那么应该删除 /etc/paths.d/go 文件
go 命令详解
- go run: 运行go 源码程序
- go build: 编译go 源码
- go install: go源码编译并打包到 $GOPATH/bin 目录下
延伸点
mac下的环境变量设置
添加
/usr/local/go/bin
到PATH
环境变量,可以通过添加下面这行到到/etc/profile
(for a system-wide installation) 或者$HOME/.profile
export PATH=$PATH:/usr/local/go/bin
如果
profile
文件在/etc/profile
中,表明是全系统范围内安装的,我的就是在/etc/profile
下MacOS加载bash shell环境变量的加载顺序
- mac 一般使用bash作为默认shell,mac系统的环境变量,加载顺序如下
- 系统级别的
- /etc/profile
- 登录的时候读入,默认的设定文件
- 这个文件为系统的每个用户设置环境变量,当用户第一次登陆时,该文件被执行,并从 /etc/profile.d 目录的配置文件中收集 shell 的设置
- 修改方法
- 如果没有特殊说明,设置PATH的语法都为
export PATH=$PATH:<PATH 1>:<PATH 2>...<PATH N>
- 有多个路径时,每个路径之间使用冒号隔开
- /etc/bashrc
- 这个是bash启动时候必须加载的环境变量,作为全局环境变量设置是可行的
- 每一个运行 bash shell 的用户执行此文件,当 bash shell被打开时,该文件被读取
- 修改方法同上
- /etc/paths
- 这个是个系统全局的路径,不建议做直接改动
- 修改方法
- 加载路径
1.创建一个文件 sudo touch /etc/paths.d/mysql 2.用vim打开这个文件(如果是以 open -t方式打开,则不允许编辑) sudo vim /etc/path.d/mysql 3.编辑该文件,键入并保存(关闭该terminal窗口并重新打开一个,就鞥使用MySQL命令了) /usr.local/mysql/bin
- 或者像下面
sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mysql'
- /etc/profile
- 用户级别的
- /.bash_profile (mac用的)
- 登录之后在 /etc/profile 载入之后载入,十分重要的配置文件
- /.bash_login
- 登录之后,如果 ~/.bash_profile不存在的话,载入这个文件
- /.profile
- 登录之后,如果 ~/.bash_login不存在的话,才载入这个文件
- /.bashrc (linux 用的)
- bash shell打开的时候载入
- /.bash_profile (mac用的)
- 系统级别的
- 在你的
$HOME
下面有.bash_profile
或者.bash_login
的时候,会忽略调.profile
- 系统级别,用户级别的只要在其中选一个修改就够了
- mac 一般使用bash作为默认shell,mac系统的环境变量,加载顺序如下
延伸阅读
- Mac 启动加载文件位置
- 首先需要知道你使用的 Mac OS X 是什么样的 shell,使用命令
echo $SHELL
- 如果输出的 csh 或者 tcsh,那么使用的 c shell
- 如果输出的是 bash,sh, zsh,那么使用的 Bourne Shell的一个变种
- mac os x 10.2 之前默认使用的是 c shell
- mac os x 10.3 之后使用的是 Borune shell
- 如果使用的是 borune shell
- 将你要添加的环境变量添加到你主目录下的.profile或者 .bash_profile, 如果 profile 或者 bash_profile 存在,那么直接将环境变量添加进入即可,如果 profile 或者 bash_profile 文件不存在,没关系,创建一个,然后把环境添加进去即可
- 首先需要知道你使用的 Mac OS X 是什么样的 shell,使用命令
- Mac 配置环境变量的地方
- /etc/profile (建议不修改这个文件)
- 全局(公有)配置,不管是哪个用户,登录时都会读取该文件
- /etc/bashrc (一般在这个文件中添加系统级别环境变量)
- 全局(公有)配置,bash shell 执行时,不管是何种方式,都会读取此文件
- ~/.bash_profile (一般在这个文件中添加用户级别环境变量)
- 每个用户都可以使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅被执行一次
- /etc/profile (建议不修改这个文件)
- Mac 启动加载文件位置
其他延伸点
- mac下运行
$HOME
的结果如下
yangdeMacBook-Pro-2:~ yangtao$ $HOME
-bash: /Users/yangtao: is a directory
yangdeMacBook-Pro-2:~ yangtao$
所以 $HOME
的值是 /Users/yangtao
,是当前登录用户的主目录