趁周末总结一下对学习和使用go的环境变量的理解。

一、Go环境变量

        在学习和使用go的第一步便是下载安装并配置好环境,下载安装过程直接参见go官网指导,这里主要说一下对要配置的环境变量的理解。

(1)GOROOT:表示go在电脑上的安装位置,如我go的安装位置在/usr/local/go,我在配置文件中对应配置GOROOT=/usr/local/go。

(2)GOBIN:表示编译器和链接器的安装位置,在Go 1.0.3 及以后的版本可为空,使用默认值$GOROOT/bin。

(3)GOPATH:一个保存工作目录的环境变量。可以设置多个工作目录,那么当你在之后使用 go get(远程包安装命令)时远程包将会被安装在第一个目录下。如我的工作目录为/home/xiaozhu/go,我在配置文件中对应配置GOPATH=/home/xiaozhu/go。

(4)PATH:以上只是配置好了go的几个参数,为保证配置可以任何地方调用,还需要在PATH环境变量上添加go的路径。如这里我添加的是PATH=$GOROOT/bin:$PATH。同时,需要的话可以将自己go工作目录的位置,PATH=$GOPATH/bin:$PATH。

此至,go的环境变量配置基本完成,在完成这些设置后,你需要在终端输入指令 source .bashrc 以使这些环境变量生效。然后重启终端,输入 go env 和 env 来检查环境变量是否设置正确。

二、系统配置文件的区别

        上面一直提到“配置文件”,我们知道linux下常用的配置文件有/ect/profile、/etc/bashrc、~/.bash_profile和~/.bashrc,这四个有什么区别呢。

(1)/ect/profile:登录操作系统时,为每个用户设置环境信息,当用户第一次登录时,该文件被执行。也就是说这个文件对每个shell都有效,用于获取系统的环境信息。

(2)/etc/bashrc:每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

(3)~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

(4)~/.bashrc:每个用户的bash shell的信息,当用户登录时以及每次打开一个新的shell时,执行这个文件。在这个文件里可以自定义用户专属的个人信息。

        当用户登录系统时,首先读的是/etc/profile里面的配置,然后登录的如果是普通用户再读取用户个人的~/.bashrc配置。