PATH 环境变量

经常使用命令行工具的话,对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

查看环境变量

查看所有环境变量:

  • env

PATH 环境变量_linux

假设我们要查看SHELL这个环境变量的值:

  • windows command prompt: echo %SHELL%
  • windows powershell: $env:SHELL
  • linux & mac: echo $SHELL

PATH 环境变量_当前目录_02

设置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文件中。