经常使用命令行工具的话,对PATH
等环境变量应该会非常熟悉;但现今的日常开发,接触到这一概念的机会越来越少。
时不时还是会遇到小朋友问我:“什么是PATH?”
这里记录一下,以供参考。
什么是环境变量?
环境变量是操作系统提供给应用程序访问的简单 key / value字符串;windows/linux/mac都有同样的概念。
一般用于提供参数值给不同的应用程序。
什么是PATH变量?
我们从命令行想要运行一个程序的时候,待运行的程序往往不是在当前目录。
PATH变量
就是用于保存可以搜索的目录路径,如果待运行的程序不在当前目录,操作系统便可以去依次搜索PATH变量
变量中记录的目录,如果在这些目录中找到待运行的程序,操作系统便可以运行。
以Go开发
为例,但我们使用go install
命令编译、安装go程序后,可执行文件是会被保存在$GOPATH/bin
路径下;那么我们可以把这个路径加入到PATH变量
中,这样我们便可以在任意路径中运行go安装的程序。
GOPATH
GOPATH
又是一个环境变量,用于保存go的主目录,go默认安装之后,GOPATH
会是当前用户的主工作目录中的go子目录,即:%HOME/go
。
查看环境变量
假设我们要查看GOPATH
这个环境变量的值:
- windows command prompt:
echo %GOPATH%
- windows powershell:
$env:GOPATH
- linux & mac:
echo $GOPATH
设置PATH变量
windows
假设我们当前登陆操作系统的用户名是:xiaomin
然后我们要把c:\users\xiaomin\go\bin
路径加入到PATH变量
中,在windows下我们可以在PowerShell中执行:
$env:Path += ";c:\users\xiaomin\go\bin"
注意,这样仅仅只是临时修改当前的PATH变量
,当我们关闭、重开PowerShell时,就需要重新设置。
如果要永久的修改,需要使用管理员权限启动PowerShell,然后执行:
setx /M PATH "%PATH%;c:\users\xiaomin\go\bin"
Linux & Mac
同样假设我们当前登陆用户名是:xiaomin
然后我们要把/home/xiaomin/go/bin
路径加入到PATH变量
中
export PATH=$PATH:/home/xiaomin/go/bin
这同样是临时修改,重开shell之后,会被重置;要永久改变的话,一般是将上面的命令加入到我们使用的shell初始化文件中。
以bash为例,那么就是将上述命令加到/home/xiaomin/.bash_profile
文件中。
网友评论