一篇彻底搞懂win的环境变量
什么是环境变量?
如果去搜索“环境变量”的含义,是否苦涩难懂。那么与其去问什么是环境变量,不如直接问我们的系统要环境变量来干嘛?这样反而更加明确安装软件时候经常讲到需要设置环境变量是为何?
举个例子我们如果要使用一个程序是不是想要安装一个程序在我们的电脑里边,那么这个安装的程序通常都会被放置在某个文件夹下,当然一般程序都是默认放置在C:Program Files这个路径下或者C:Program Files(x86)这个文件中,如果你选择了其他的路径,当然也会在其他的路径下生成一些文件,但是最终会有一个exe的执行文件(少部分程序可能没有,因为它不是这样直接通过图形界面去执行的文件,比如我在Nas中常说的内网穿透ngrok就是一个命令行启动程序)。
每次我们要运行这个软件是不是都要双击它的exe执行文件,才开始做程序的操作呢?那么换个思路,如果我们要系统本身为我们去执行这个双击的操作,它会怎么做呢?那么肯定的是我们要告诉系统,我的这个软件在哪,它到哪个路径下才能找到并且帮运行这个软件。设置这个路径的过程就较设置环境变量。
分开来说就环境和变量。当前这个系统环境下存在很多的变量,那么系统在帮执行以下程序和任务的时候就回去调取这些变量所对应的值,来执行相应的操作。好比一条算数题a=2,那么系统在调用a的时候就会按照它的值去执行2的数值,同样b=C:Program Filesqq.exe,那么启动QQ这个程序只要调用变量b就能得到QQ的路径。这里只是打个比方,真实的系统运行的时候也是这样去调取环境变量,但是步骤要复杂得多。
环境变量的历史
在那个还没有windows桌面的年代(一不小心暴露了年龄),也就是DOS时代,环境变量的操作只能名命令来操作和写入,所以环境变量的概念早在桌面图形界面出现之前就已经存在了,显示系统可识别程序路径需要用Path命令就能看出哪些程序的执行路径在哪个位置上。当然也可以新增路径,这里有个延续到今天仍然可以使用的命令格式%PATH%表示新路径附着在原有路径上的意思一直没有改变。
为什么叫讲环境变量,因为liunx同样也有环境变量这个概念,我们平常操作docker就跟操作一个简化版的liunx环境差不多,因为之前讲了很多关于Nas里docker的东西,还是有小伙伴问为什么要怎么做,这样做有什么意义,因为大同小异,所以先从我们最熟悉的系统开始讲才更便于去理解,而这篇不会去讲liunx的环境变量,篇幅太大。
如何设置环境变量
在设置环境变量的前,先来了解以下win的环境变量分为两种:
系统变量、用户变量
系统变量是针对系统本身的一类环境变量,也可以这么说(不是非常准确)针对是系统中所有用户的设置。
用户变量是针对当前或者指定用户的一类环境变量,只会对用户起到效果。
windows每个版本的进入环境变量图形界面设置的方式都差不多,因为我只安装了win10系统所以就用win10作为入口介绍其他的入口很容易就找到了。
图形界面修改方式
进入图形界面的方法有很多很多,我讲最简单一种。直接使用开始左下角边上的搜索“环境变量”,选择“编辑系统环境变量”直接就能到达环境变量的这是界面,win7系统和旧版本win10是没有这种便利的,可以在搜索引擎中找以下进入环境变量设置的方法,步骤还算蛮多的,自己去找还真不好找,所以正版windows从更新和安全的角度来考虑还是蛮划算的。这里吐槽顺便一下旧版本win10的小娜和搜索都很鸡肋。
这里就不去每个变量的意义,用得比较多就是Path软件路径的变量和TEMP缓存路径设置,通常我们去设置某项软件比如想要在CMD中使用git、php这些命令当然还有很多不止这些命令,这些命令在原来的系统中不存在的,如果没有指定这些软件的路径,那么系统是不知道你的命令来源于哪个软件,也就不知道如何运行这些命令下的功能。
拿php来举例:所以当我们安装某种集成环境,比如phpstudy如果是绿色版本,环境变量就没有在安装的时候给配置好,那么就需要手动去配置环境,使得php这个命令在CMD中生效。其实我使用php的主要原因还是为了给composer包管理工具提供环境。
因为只有我的电脑系统只有自己一个用户,那么可以直接在系统变量中的Path中增加php的路径,现在用一张图讲清楚怎么增加路径。
现在就可以顺利使用php命令,而不会报错了。
增加环境变量的Path路径在win10中就是那么简单。其他系统中也非常简单,其他的变量可以自行去研究一下,其实也是非常简单和通俗易懂的,只要你明白这个变量是用来干嘛的,其实怎么设置都是由你自己说了算,对吧?
CMD查看
运行“cmd” 执行命令“set”即可看到系统变量
PowerShell修改方式
既然说了在DOS时代就有了命令行创建或者修改环境变量的方法,那么即使在9102年依然是可以这样去操作的,只不过换了个地方而已。因为非图形界面操作起来不是非常直观,我这里也不做详细的介绍了。在搜索中输入“PowerShell”后弹出命令执行框,执行命令:
[environment]::SetEnvironmentvariable("Path", ";c:powershellscript", "User")
[environment]::GetEnvironmentvariable("Path", "User")
可以对环境变量进行生效
稍微解释一下命令的意思:
[Environ ment]::SetEnvironmentVariable(“环境变量名”,“环境变量值”,“User”)
注册表修改方法:
当然不仅不仅一个方法可以两种方法去设置环境变量,你还可以通过注册表单方式去编辑系统的环境变量,不过并不推荐后面这两种方法修改环境变量,除非你对系统的非常熟悉,注册表玩坏了基本没说明补救的措施,除了备份还原,最重要的是一般人都记不住的自己操作了什么。
建议多多使用win10的搜索功能其实还是非常强大的,win7可以运行命令“regedit”,而win10可以直接搜索"注册表",然后运行注册表程序。
用户环境变量:
“计算机HKEY_CURRENT_USEREnvironment”
在右侧窗口中双击要编辑的环境变量,修改其数值数据
系统环境变量:
“计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment”
定位到这里进行设置系统的环境变量,那么所有用户的环境变量都随之改变了
冰草
校验提示文案
谁不是个打工仔
校验提示文案
谁不是个打工仔
校验提示文案
冰草
校验提示文案