下載和安裝
- 下載
- 在官網(wǎng)下載安裝包然后安裝 - 安裝
- 一路默認(rèn)安裝即可
- 然后在終端運(yùn)行
go version,如果顯示類似下面的信息,表明安裝成功
go version go1.10.1 darwin/amd64 - 如果沒有出現(xiàn)上面的信息或者出現(xiàn)了其他的報(bào)錯(cuò)信息,請(qǐng)自行查詢解決
工作空間,GOROOT和GOPATH和bin的設(shè)置
-
開始寫go項(xiàng)目代碼之前,需要?jiǎng)?chuàng)建一個(gè)工作空間,并在環(huán)境變量中指明工作空間的目錄
我們?cè)?$HOME($HOME是每個(gè)電腦下的用戶主目錄,每個(gè)電腦可能不同,可以在終端運(yùn)行
echo $HOME獲取,我們這里就直接使用 $HOME,)目錄下創(chuàng)建一個(gè)工作空間go,所以工作空間的目錄就是 $HOME/go. (如果你想在一個(gè)不同的目錄下創(chuàng)建工作空間,那你需要設(shè)置一下GOPATH 環(huán)境變量和bin環(huán)境變量)-
設(shè)置 GOPATH 環(huán)境變量
- 編輯你的 ~/.bash_profile(在終端中運(yùn)行 vi ~/.bash_profile即可) 來添加下面這行代碼(如果你找不到 .bash_profile,那自己創(chuàng)建一個(gè)就可以了)
export GOPATH=$HOME/go- 保存然后退出你的編輯器。然后在終端中運(yùn)行下面命令
source ~/.bash_profile -
設(shè)置bin可執(zhí)行文件目錄
-
在go官方文檔中,是這樣設(shè)置go的bin二進(jìn)制文件目錄路徑的
- 注意,設(shè)置GOBIN路徑以便當(dāng)運(yùn)行
go install時(shí)產(chǎn)生二進(jìn)制文件
export GOBIN=$HOME/go/bin
- 注意,設(shè)置GOBIN路徑以便當(dāng)運(yùn)行
-
而在其他網(wǎng)上說明文檔中,直接設(shè)置path
``` export PATH=$HOME/go/bin ``` -
我的 bash_profile 文件中是這樣的
export GOPATH=$HOME/go export PATH=$HOME/go/bin:$PATH -
如果你是在mac os x 下直接通過安裝包安裝的,那么不用設(shè)置 bin 也可以,因?yàn)橥ㄟ^安裝包安裝時(shí)(除非你的工作空間不在$HOME/go而在其他你偏好的文件目錄下,這個(gè)時(shí)候是需要設(shè)置bin目錄的),已經(jīng)在 /etc/paths.d/go下指定了 bin 的目錄
$ cd /etc/paths.d $ ls go $ cat go /usr/local/go/bin
-
-
GOROOT 默認(rèn)是在 /usr/local/go,如果沒有,可以在 bash_profile 文件中設(shè)置
export GOROOT=/usr/local/go然后退出編輯器,然后運(yùn)行
source ~/.bash_profile命令即可
第一個(gè)go程序
- 進(jìn)入到工作空間中(我的是
$HOME/go, 所以使用cd $HOME/go命令直接進(jìn)入) - 然后創(chuàng)建一個(gè)目錄 src/hello(
mkdir src/hello), - 然后進(jìn)入到該目錄中(
cd src/hello), - 然后使用
vi hello.go或者其他方式創(chuàng)建一個(gè) hello.go文件, - 然后打開該文件進(jìn)行編輯
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
- 保存后退出
- 然后在該hello.go文件目錄下運(yùn)行
go build, 這個(gè)命令會(huì)創(chuàng)建一個(gè)命名為 hello 的可執(zhí)行的文件, - 如果執(zhí)行命令
ls,你會(huì)看到這個(gè)可執(zhí)行文件就在hello.go的旁邊
$ go build hello.go
$ ls
hello hello.go
- 然后執(zhí)行命令
./hello
$ ./hello
hello, world!
如果看到 hello, world, 說明程序正確運(yùn)行,否則有錯(cuò)
- 可以運(yùn)行
go install hello將二進(jìn)制文件安裝到工作空間 ($HOME/go) 的bin目錄中,或者go clean hello將該二進(jìn)制文件刪掉 - 運(yùn)行
go install hello命令之后,運(yùn)行ls $GOPATH/bin,可以看到此時(shí)hello已經(jīng)在 bin 目錄中, 這個(gè)時(shí)候,你在系統(tǒng)的任何目錄下運(yùn)行hello命令,都會(huì)打印出hello, world
$ pwd
$HOME/go/src/hello
$ go install hello
$ ls $HOME/bin
hello
$ cd /Users/
$ hello
hello, world!
- 如果運(yùn)行hello的結(jié)果是
-bash: hello: command not found這樣的結(jié)果,那么你可能需要在 /.bash_profile中指定一下PATH,(例如,在./bash_profile中添加export PATH=$HOME/go/bin:$PATH, 然后運(yùn)行source ~/.bash_profile,然后再次運(yùn)行go install hello,然后再運(yùn)行hello,應(yīng)該會(huì)打印出hello, world!的結(jié)果)
刪除 go
- 當(dāng)你需要?jiǎng)h除 go
- 刪除 /usr/local目錄下的 go
- 刪除 PATH 環(huán)境變量中的 bin
- 在/etc/profile 或者 $HOME/.profile 或者 $HOME/.bahs_profile中刪除bin的設(shè)置
- 如果是通過 mac os x 的安裝包安裝的,那么應(yīng)該刪除 /etc/paths.d/go 文件
go 命令詳解
- go run: 運(yùn)行g(shù)o 源碼程序
- go build: 編譯go 源碼
- go install: go源碼編譯并打包到 $GOPATH/bin 目錄下
延伸點(diǎn)
mac下的環(huán)境變量設(shè)置
-
添加
/usr/local/go/bin到PATH環(huán)境變量,可以通過添加下面這行到到/etc/profile(for a system-wide installation) 或者$HOME/.profile
export PATH=$PATH:/usr/local/go/bin如果
profile文件在/etc/profile中,表明是全系統(tǒng)范圍內(nèi)安裝的,我的就是在/etc/profile下-
MacOS加載bash shell環(huán)境變量的加載順序
- mac 一般使用bash作為默認(rèn)shell,mac系統(tǒng)的環(huán)境變量,加載順序如下
- 系統(tǒng)級(jí)別的
- /etc/profile
- 登錄的時(shí)候讀入,默認(rèn)的設(shè)定文件
- 這個(gè)文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境變量,當(dāng)用戶第一次登陸時(shí),該文件被執(zhí)行,并從 /etc/profile.d 目錄的配置文件中收集 shell 的設(shè)置
- 修改方法
- 如果沒有特殊說明,設(shè)置PATH的語法都為
export PATH=$PATH:<PATH 1>:<PATH 2>...<PATH N>- 有多個(gè)路徑時(shí),每個(gè)路徑之間使用冒號(hào)隔開
- /etc/bashrc
- 這個(gè)是bash啟動(dòng)時(shí)候必須加載的環(huán)境變量,作為全局環(huán)境變量設(shè)置是可行的
- 每一個(gè)運(yùn)行 bash shell 的用戶執(zhí)行此文件,當(dāng) bash shell被打開時(shí),該文件被讀取
- 修改方法同上
- /etc/paths
- 這個(gè)是個(gè)系統(tǒng)全局的路徑,不建議做直接改動(dòng)
- 修改方法
- 加載路徑
1.創(chuàng)建一個(gè)文件 sudo touch /etc/paths.d/mysql 2.用vim打開這個(gè)文件(如果是以 open -t方式打開,則不允許編輯) sudo vim /etc/path.d/mysql 3.編輯該文件,鍵入并保存(關(guān)閉該terminal窗口并重新打開一個(gè),就鞥使用MySQL命令了) /usr.local/mysql/bin- 或者像下面
sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mysql'
- /etc/profile
- 用戶級(jí)別的
- /.bash_profile (mac用的)
- 登錄之后在 /etc/profile 載入之后載入,十分重要的配置文件
- /.bash_login
- 登錄之后,如果 ~/.bash_profile不存在的話,載入這個(gè)文件
- /.profile
- 登錄之后,如果 ~/.bash_login不存在的話,才載入這個(gè)文件
- /.bashrc (linux 用的)
- bash shell打開的時(shí)候載入
- /.bash_profile (mac用的)
- 系統(tǒng)級(jí)別的
- 在你的
$HOME下面有.bash_profile或者.bash_login的時(shí)候,會(huì)忽略調(diào).profile - 系統(tǒng)級(jí)別,用戶級(jí)別的只要在其中選一個(gè)修改就夠了
- mac 一般使用bash作為默認(rèn)shell,mac系統(tǒng)的環(huán)境變量,加載順序如下
-
延伸閱讀
- Mac 啟動(dòng)加載文件位置
- 首先需要知道你使用的 Mac OS X 是什么樣的 shell,使用命令
echo $SHELL- 如果輸出的 csh 或者 tcsh,那么使用的 c shell
- 如果輸出的是 bash,sh, zsh,那么使用的 Bourne Shell的一個(gè)變種
- mac os x 10.2 之前默認(rèn)使用的是 c shell
- mac os x 10.3 之后使用的是 Borune shell
- 如果使用的是 borune shell
- 將你要添加的環(huán)境變量添加到你主目錄下的.profile或者 .bash_profile, 如果 profile 或者 bash_profile 存在,那么直接將環(huán)境變量添加進(jìn)入即可,如果 profile 或者 bash_profile 文件不存在,沒關(guān)系,創(chuàng)建一個(gè),然后把環(huán)境添加進(jìn)去即可
- 首先需要知道你使用的 Mac OS X 是什么樣的 shell,使用命令
- Mac 配置環(huán)境變量的地方
- /etc/profile (建議不修改這個(gè)文件)
- 全局(公有)配置,不管是哪個(gè)用戶,登錄時(shí)都會(huì)讀取該文件
- /etc/bashrc (一般在這個(gè)文件中添加系統(tǒng)級(jí)別環(huán)境變量)
- 全局(公有)配置,bash shell 執(zhí)行時(shí),不管是何種方式,都會(huì)讀取此文件
- ~/.bash_profile (一般在這個(gè)文件中添加用戶級(jí)別環(huán)境變量)
- 每個(gè)用戶都可以使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時(shí),該文件僅僅被執(zhí)行一次
- /etc/profile (建議不修改這個(gè)文件)
- Mac 啟動(dòng)加載文件位置
其他延伸點(diǎn)
- mac下運(yùn)行
$HOME的結(jié)果如下
yangdeMacBook-Pro-2:~ yangtao$ $HOME
-bash: /Users/yangtao: is a directory
yangdeMacBook-Pro-2:~ yangtao$
所以 $HOME 的值是 /Users/yangtao,是當(dāng)前登錄用戶的主目錄