經(jīng)常使用命令行工具的話,對PATH等環(huán)境變量應(yīng)該會非常熟悉;但現(xiàn)今的日常開發(fā),接觸到這一概念的機會越來越少。
時不時還是會遇到小朋友問我:“什么是PATH?”
這里記錄一下,以供參考。
什么是環(huán)境變量?
環(huán)境變量是操作系統(tǒng)提供給應(yīng)用程序訪問的簡單 key / value字符串;windows/linux/mac都有同樣的概念。
一般用于提供參數(shù)值給不同的應(yīng)用程序。
什么是PATH變量?
我們從命令行想要運行一個程序的時候,待運行的程序往往不是在當(dāng)前目錄。
PATH變量就是用于保存可以搜索的目錄路徑,如果待運行的程序不在當(dāng)前目錄,操作系統(tǒng)便可以去依次搜索PATH變量變量中記錄的目錄,如果在這些目錄中找到待運行的程序,操作系統(tǒng)便可以運行。
以Go開發(fā)為例,但我們使用go install命令編譯、安裝go程序后,可執(zhí)行文件是會被保存在$GOPATH/bin路徑下;那么我們可以把這個路徑加入到PATH變量中,這樣我們便可以在任意路徑中運行g(shù)o安裝的程序。
GOPATH
GOPATH又是一個環(huán)境變量,用于保存go的主目錄,go默認(rèn)安裝之后,GOPATH會是當(dāng)前用戶的主工作目錄中的go子目錄,即:%HOME/go。
查看環(huán)境變量
假設(shè)我們要查看GOPATH這個環(huán)境變量的值:
- windows command prompt:
echo %GOPATH% - windows powershell:
$env:GOPATH - linux & mac:
echo $GOPATH
設(shè)置PATH變量
windows
假設(shè)我們當(dāng)前登陸操作系統(tǒng)的用戶名是:xiaomin
然后我們要把c:\users\xiaomin\go\bin路徑加入到PATH變量中,在windows下我們可以在PowerShell中執(zhí)行:
$env:Path += ";c:\users\xiaomin\go\bin"
注意,這樣僅僅只是臨時修改當(dāng)前的PATH變量,當(dāng)我們關(guān)閉、重開PowerShell時,就需要重新設(shè)置。
如果要永久的修改,需要使用管理員權(quán)限啟動PowerShell,然后執(zhí)行:
setx /M PATH "%PATH%;c:\users\xiaomin\go\bin"
Linux & Mac
同樣假設(shè)我們當(dāng)前登陸用戶名是:xiaomin
然后我們要把/home/xiaomin/go/bin路徑加入到PATH變量中
export PATH=$PATH:/home/xiaomin/go/bin
這同樣是臨時修改,重開shell之后,會被重置;要永久改變的話,一般是將上面的命令加入到我們使用的shell初始化文件中。
以bash為例,那么就是將上述命令加到/home/xiaomin/.bash_profile文件中。