作者:极客小俊

公众号同名: 一个把逻辑思维转变为代码的技术博主

你在开玩笑吧! 居然还有人不知道为什么要配置环境变量?

前言概述

你在开始学习编程的时候,首先就会接触到环境变量

例如java、python、php等开发语言的时候,需要去配置一个环境变量 但又不知道为什么要去配置它!

并且这个环境变量在配置的时候你也不能照本宣科的去配置,稍有不慎就会出现各种各样的问题!

今天我们就来讨论讨论这个环境变量的话题,并且搞清楚它的原理,这样以后再次遇到类似问题就会迎刃而解!

什么是环境变量

环境变量 英文名为: Environment variables

是在操作系统中一个具有特定名字的对象,它包含了一个多个应用程序所将使用到的信息, 例如: 如系统临时文件夹位置、系统文件夹位置、某些应用软件文件的路径等等..

举个梨子

当要求系统运行一个程序但是又没有告诉它这个程序所在的完整路径时,系统默认会在当前目录下面寻找这个程序,如果找不到就会到环境变量中的path中指定的路径去找, 所以我们用户可以通过设置环境变量,来更好的运行程序!

这里我以windows系统的环境变量来举个梨子

为了让大家更好的去理解这句话,我们这里来实际操作一下, 你可以打开你的cmd命令行终端来尝试运行一下你的QQ程序, 输入一个QQ程序,你看看会发生什么事情!

如图

这里他提示了一个'qq' 不是内部或外部命令,也不是可运行的程序或批处理文件

结果很明显,不能通过这种方式去打开QQ程序,对吧 也就是说你要先告诉系统这个程序在哪,才能进行打开

也相信大多数人都是通过桌面的QQ图标或者菜单等方式去点击打开这些应用程序 对吧

那么如果说我硬要通过这种cmd的方式去打开一个应用程序该怎么办呢?首先你要进入并且找到这个程序的准确路径位置!

例如上面我们要打开QQ 我就要先通过cmd命令直接进入到QQ安装的所在目录下的bin目录下的QQ.exe这个执行程序, 当然这里需要通过一些简单的DOS命令 才可以进去, 不明白没关系,后面会说到!

这里我这里的路径为D:\腾讯软件\QQ\Bin

那么我先切换到D盘,然后再使用cd命令切换到D:\腾讯软件\QQ\Bin这个目录下,最后执行一下QQ.exe

如图

嘿嘿 你惊奇的发现居然打开了QQ程序, 是不是感觉很zb! 这个效果跟你在点击图标去打开是一个效果, 没有任何区别!

那如果本次都叫你用这种去慢慢输入路径的方式打开 万一路径很长很复杂那岂不是你要疯掉!, 当然这里只是举个梨子,让你更好的理解为什么要配置环境变量 你完全可以使用桌面图标来打开这些应用程序!

而且你如果关掉cmd后重新打开,再次输入QQ 其实又是同样的问题,这就意味着你要从cmd打开QQ必须每次按照刚才的步骤进行打开,并且你还必须要切换到这个QQbin目录下才行,这样就很麻烦了, 也不利于你zb!

那么有没有办法让我们在随便哪个目录中都可以直接使用cmd输入一个QQ就可以打开的办法呢?

现在就是使用环境变量的时候了!

其实很简单你只要把刚刚那个bin目录的路径添加到环境变量系统变量下的path中就可以了

这里的path也就是环境变量中用来指定可执行文件绝对路径,这里配置了很多很多路径,彼此之间用分号隔开!

具体操作这里以win10为例,步骤如下:

点击此电脑---->右键(选择属性)----->点击高级系统设置------>点击(环境变量)

如图

然后找到系统变量下的path点击编辑

如图

然后点击新建

然后复制你的QQ安装目录下的bin路径, 我的路径如下图

也就是复制D:\腾讯软件\QQ\Bin到新建的对话框中

最后全部点击确定即可!

然后你就可以在cmd中的任意目录 任意盘符下进行打开这个应用程序了!

通过这个小案例 你应该对环境变量有一点点初步的认识了吧!

小结

环境变量的主要作用就是规定了某些系统文件所在的位置!

用户变量和系统变量的区别

概述

在上面的环境变量介绍中,我们看到可以通过配置一些路径从而达到在cmd命令行中快速启动应用程序!

但是眼尖的朋友可能已经发现,环境变量的配置中被分为了 用户变量系统变量 他们分别又是什么意思呢?

用户变量

环境变量中的用户变量配置只会当前所登录的系统用户生效, 也就是说登录的系统用户可以对他自己所配置的环境变量参数进行增删改 , 不同用户的用户变量之间是独立存在的,并且互不干扰的

系统变量

环境变量系统变量的配置会对所有用户都会有效, 也就是说如果系统变量被修改了,那么任何一个用户都将受到影响!

但是只有管理员账户才有权限进行系统变量的设置, 普通系统用户是不能够去修改系统变量的, 当然一般情况下你通常都是使用的系统管理员账户进行windows系统的登录的

所以平常我们在自己的电脑系统中去配置环境变量的时候,不管你是配置在用户变量还是系统变量基本上还是没有什么区别!

用户变量和系统变量之间的关系

用户变量系统变量 我们可以用一张图来进行表示!

如图

看到了吧,不同用户的用户变量之间是并列独立的, 但是如果说系统变量被修改了,那么任何系统用户级别都会用系统变量,因此每个用户都将受到影响

所以说系统变量就是系统级别的变量,影响范围最大, 而用户变量是建立在系统变量之前的独立存在, 它需要使用系统变量, 而我们所指的环境变量则是是一个整体,它里面就代表了系统变量用户变量

所以用户变量系统变量的区别就是他们的级别不一样!

如何自定义环境变量命令

当我们想通过cmd来运行一个自己定义的命令时,就会出现不是内部或外部命令,也不是可运行的程序 或批处理文件的提示信息!

但是如果我们在cmd中输入一个shutdown命令则可以完全正常执行!

如图

这个原因也很简单,正因为shutdown在环境变量中定义了它这个命令所在的路径,而test这个命令则没有!

shutdown命令的默认路径是在C:\Windows\System32目录下, 包括一些常见的cmd命令其实都在这个目录下

如图

C:\Windows\System32这个路径也是默认安装系统的时候就被定义在了环境变量当中, 就跟之前定义QQ应用程序也是一个道理!

如图

所以根据这个道理我们也可以自定义一个环境变量来进行调用!

要知道变量、变量 就是一个可变化的量 我们就利用这个特点来自己定义一个系统变量然后调用它来打开某个应用程序!

举个梨子

我这里要打开微信,当然你完全可以依照之前的办法在path中把微信的WeChat.exe路径加入到其中, 但是这样子做不够灵活!

我们可以先在系统变量中定义一个weixin 然后设置为微信目录地址!

我的地址为:D:\腾讯软件\WeChat

选择系统变量 点击新建 输入变量名

变量名 英文即可!

就是微信的路径

如图

设置好了之后,我们现在就可以对它进行调用!

然后再path中把刚刚自定义好的weixin这个变量加入到其中,格式为%变量名%

如图

这样一来以后你只需要去修改变量的值 path中就会自动获取到了!

接下来就可以去cmd中尝试一下打开这个应用程序吧!

所以通过以上的操作,只要是在cmd中去执行的应用,其位置均储存在环境变量目录值中,我们在执行cmd中的应用时,其实就是在遍历环境变量所有应用程序的位置, 并且查看其中有没有该程序!

如果没有就会提示未找到这种信息,如果在环境变量中找到了你在cmd中输入的命令,那么通过环境变量就可以直接去找到该程序并且执行!

为什么编程开发要配置环境变量

知道什么是环境变量以后,现在应该明白我们在开发java、python、php之前需要配置的环境变量的原因了吧

举个梨子

比如Java我们就需要把JDKbin目录添加到环境变量path中,这样我们就可以在任意目录下使用bin下面的.exe可执行程序,javac.exe、java.exe

javac.exe用来处理.java源代码文件,是把源代码文件编译字节码文件的一个工具,经过javac.exe这个工具编译java源代码文件后形成的.class就是字节码文件

java.exe用来处理.class字节码文件进行执行的,也就是JVM解释执行java程序, 从而实现java程序的运行

而他们都在bin目录下, 这都是为了能够方便的使用这些开发语言所带有的编译解释工具和命令, 所以我们才要配置环境变量

如图

要知道这也正是很多新手朋友刚刚入门java的一个难题, 如果环境变量配置不成功,在cmd中去输入java就会提示找不到某某的关键词 对吧!

然而java的应用程序开发包就在安装JDK目录下面的bin目录中, 并且所有跟Java相关的工具都在bin目录中!

所以在开始学习java或者其他一些开发语言的时候,为了操作方便必须要配置一下环境变量 从而达到能够正常运行java的环境, 其他一些语言也是以此类推!

环境变量的一些小玩法

既然我们知道了环境变量中的path可以被系统自动检索,那么我们就也利用这个特点来做一些配置!

举个梨子

我们可以指定某个文件夹下的所有.exe执行程序都可以直接在命令行终端里输入其名称,并且直接打开!

你可以提前准备好一些.exe程序,并放入到一个tools的目录中,比如你把这个目录建立在D:盘

如图

然后你只需要把这个D:\tools路径配置到环境变量path当中

如图

现在就可以通过命令行终端直接输入其执行程序的名称来直接打开了!

如图

但是这种办法 可能会有一些弊端, 因为有些.exe执行程序你拷贝到另外的文件夹是无法被正常打开的!

既然是环境变量我们就要用变量的特性来解决这个问题, 也就是用变量访问指定文件夹列表的方式!

我们可以在系统变量当中自定义一个变量名TOOLS

那么它的值为如下

D:\Microsoft VS Code;D:\PotPlayer64;D:\Typora;D:\ReNamer;D:\Bandizip

也就是我们把vscode、PotPlayer、typora、renamer、bandizip这几种应用的路径都赋值到一个变量当中

如图

注意: 第一次输出的时候,需要这样进行输入,以后再添加直接点击编辑就可以了

也就是以下这个样子

也就是把多个路径映射到一个变量

然后再把这个TOOLS变量添加到系统变量中的Path下, 加入的格式就为%自定义的变量名%

如图

这样子我们就可以通过终端命令行来快速启动这些应用了, 当然前提你要知道这些应用执行程序的名称!

如图

最后

看到这里了想必你已经对环境变量也应该有一个基本的认识了吧,也不会对环境变量的配置感到复杂了!

环境变量还有更多的玩法,也期待小伙伴勇于去发现其中的奥秘!

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

如果以上内容有任何错误或者不准确的地方,欢迎在下面 留个言指出、或者你有更好的想法,欢迎一起交流学习

举报/反馈

极客小俊

183获赞 102粉丝
公重号:「极客小俊」 重庆互联网科技优质技术文档创作者、CSDN万粉博主、阿里云博客专家
关注
0
0
收藏
分享