前言
学习一些新的软件的第一步就是要配置环境,很多软件都要要编辑环境变量这个过程.以前一直是看着网上都的教程一步一步操作的,抛开不知道为什么不说,还经常配置不成功,今天就花时间学习一下windows的环境变量的原理和用处.
1.环境变量面板
网上有很多打开这个面板的方法教程,这里就不详细说了.打开之后是这个样子的.
上面的用户变量是只对当前用户生效,下面的系统变量会对所有用户生效.我们主要讨论系统变量
可以看到,所有的变量都有两个部分组成.一个是变量名(左侧),一个是值(右侧).
在这些变量中,有一个和其他的不一样,就是Path变量.所以可以变量分为两种:path和其他
至于变量的用处,再后面会讲.在此之前,先看:
2 命令行是怎么找到命令的?
第一步:先在当前的目录下找,如果有符合的,就直接运行
举个例子:这里有一个hello.exe程序
在这个文件下打开终端,就可以直接运行
第二步:如果在当前目录下没有符合的,就顺序查找Path变量里的目录
举个例子:还是刚才的hello.exe,这一次假设我们在其他的目录下运行
首先在当前目录下是找不到hello.exe的,所以会顺序查找Path里的目录
先找:C:\Program Files\Common Files\Oracle\Java\javapath(第一条)
然后:D:\Desktop\Desktop\计算机\并行计算\实验3\Bin(第二条)
…一直这样找下去
直到
找到最后一条,发现在D:\hello里有hello.exe可以执行,然后执行hello.exe.
这就实现了可以在任意位置执行hello.exe
比如说可以在桌面直接执行
优先级问题
当环境变量的目录中有多个同名的变量时,会顺序查找到第一个复合的执行,后面的就不管了.
可以做一个小实验来理解
我们现在写了两个hi程序,一个在hello文件夹里,一个在hi文件夹里.这两个程序的区别在于 hello 中的会输出 hi 而 hi 文件夹中的会输出 hi0.先把hi文件夹的环境变量放在hello文件夹前
这时理论上应该输出hi0,结果也如此
现在换一下位置,这时候就输出hi了
(补充:会先找系统变量的path,再找用户变量path)
第三步.如果前两步都找不到…
然后就是大家喜闻乐见的错误了
3.环境变量的作用
假如我们要使用python,只需要再控制台上输入python就可以了
尽管python不在当前的目录下,但是由于python在环境变量里,也是可以找到的.
假如说没有环境变量,就只能在环境变量对应的目录下才能使用了…
4.添加环境变量
看到这里,怎么添加环境变量就已经一目了然了,直接在path变量中加入对应的目录就可以了.但是还有一个问题,那就是除了path之外的变量是干什么用的呢.
这些变量就是一个key-value对,有点像宏定义.
比如说这个java的,上图是JAVA_HOME变量,下图是Path变量里对其的引用
简而言之,定义了JAVA_HOME之后,使用%JAVA_HOME%(前后加上%表示引用这个变量)就会被替换为
C:\Program Files\Java\jdk-16.0.1
那么 %JAVA_HOME%\bin 就是
C:\Program Files\Java\jdk-16.0.1\bin
要说有什么作用的话,估计是更加简洁吧…
tips:可以在终端里用echo %变量名%查看变量值
总结
没有总结