經(jīng)常使用命令行工具的話,對PATH
等環(huán)境變量應(yīng)該會(huì)非常熟悉宙拉;但現(xiàn)今的日常開發(fā),接觸到這一概念的機(jī)會(huì)越來越少丙笋。
時(shí)不時(shí)還是會(huì)遇到小朋友問我:“什么是PATH谢澈?”
這里記錄一下,以供參考御板。
什么是環(huán)境變量锥忿?
環(huán)境變量是操作系統(tǒng)提供給應(yīng)用程序訪問的簡單 key / value字符串;windows/linux/mac都有同樣的概念怠肋。
一般用于提供參數(shù)值給不同的應(yīng)用程序敬鬓。
什么是PATH變量?
我們從命令行想要運(yùn)行一個(gè)程序的時(shí)候笙各,待運(yùn)行的程序往往不是在當(dāng)前目錄钉答。
PATH變量
就是用于保存可以搜索的目錄路徑,如果待運(yùn)行的程序不在當(dāng)前目錄杈抢,操作系統(tǒng)便可以去依次搜索PATH變量
變量中記錄的目錄数尿,如果在這些目錄中找到待運(yùn)行的程序,操作系統(tǒng)便可以運(yùn)行惶楼。
以Go開發(fā)
為例右蹦,但我們使用go install
命令編譯、安裝go程序后歼捐,可執(zhí)行文件是會(huì)被保存在$GOPATH/bin
路徑下何陆;那么我們可以把這個(gè)路徑加入到PATH變量
中,這樣我們便可以在任意路徑中運(yùn)行g(shù)o安裝的程序窥岩。
GOPATH
GOPATH
又是一個(gè)環(huán)境變量,用于保存go的主目錄宰缤,go默認(rèn)安裝之后颂翼,GOPATH
會(huì)是當(dāng)前用戶的主工作目錄中的go子目錄晃洒,即:%HOME/go
。
查看環(huán)境變量
假設(shè)我們要查看GOPATH
這個(gè)環(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"
注意球及,這樣僅僅只是臨時(shí)修改當(dāng)前的PATH變量
,當(dāng)我們關(guān)閉呻疹、重開PowerShell時(shí)吃引,就需要重新設(shè)置。
如果要永久的修改刽锤,需要使用管理員權(quán)限啟動(dòng)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
這同樣是臨時(shí)修改,重開shell之后并思,會(huì)被重置庐氮;要永久改變的話,一般是將上面的命令加入到我們使用的shell初始化文件中宋彼。
以bash為例弄砍,那么就是將上述命令加到/home/xiaomin/.bash_profile
文件中。