[随笔杂谈] 计算机编程 —— 环境变量究竟是个什么东西?我该如何配置它?
当我们学习某种编程语言的时候,在配置初始环境时,总是会听到。配置环境变量,配置 PATH 环境变量 。。。 对于小白而言:啥是环境变量?环境变量有啥用?为什么要配它才能用?就成了一大难点,那么本文就是来进行 “编程扫盲” 的(笔者也是教太多小白配,有点烦了,决定写这篇文章,让小白自己来看) !!
0x01:环境变量 · 导入篇 — CMD 窗口
在看人家校验编程环境(或者有人想装逼)时,下面这个窗口你一定不会陌生:
上面那个窗口,我们管他叫 “命令行” 窗口,这个窗口其实来自早期的 Windows Dos 系统。早期还没有现在的图形化界面(就是你鼠标点点的那个界面),所有操作都是通过这个黑框框进行的。
OK,上面不是我们关注的重点,笔者教你咋打开它。同时按住你键盘上的 Win + R 键,你不知道啥是 Win 键?看下面这个图(Win + R 键):
此时你的桌面左下角会弹出一个叫 “运行” 的框框,通过它我们可以快速打开一些东西,这个也不重要。我们输入 cmd
,就会打开上面我们介绍的那个黑框框:
恭喜你,你已经知道怎么进入 CMD 命令行界面了(你以后会经常和其打交道的)。在这个界面我们能使用一堆系统命令,可以通过 help
方式打印可以用的命令(我知道你看不懂,我们也不会教,就是告诉你一下):
0x02:环境变量 · 核心篇 — PATH 环境变量的作用
与其叫环境变量,不如叫命令索引目录。就是上面那个黑框框,我输入 ipconfig
它可以给我显示我本机的 IP 信息,那么问题来了,它凭啥能显示:
其实这就是因为当我们输入 ipconfig
并按下 Enter 后,系统会去一个表格中找 ipconfig
这个命令对应的程序(一般 Windows 系统里就叫 ipconfig.exe
)。
好,那么问题来了?它咋找的?接下来,笔者带你走一下流程。
首先,它会去你当前运行命令的目录下去找,如果找到了 ipconfig.exe
就会运行它:
那么问题来了,当前目录下没有 ipconfig
咋办?此时系统就会去 “PATH 环境变量” 那个表格中去查询,先来看看我这台机器的 PATH 环境变量内容(待会会教你咋打开这个界面的):
来看看表格中的内容:
%SystemRoot%\system32
%SystemRoot%
%SystemRoot%\System32\Wbem
%SystemRoot%\System32\Wbem
C:\Program Files\Bandizip\
像 C:\Program Files
这样的路径我们肯定见过,但是像 %SystemRoot%
这种,我们似乎没咋遇到过。其实这种以 %
号包裹一个内容的,我们称之为引用路径。我们尝试通过 CMD 窗口揭开它的神秘面纱,在 CMD 窗口中输入下面的内容:
echo %SystemRoot%\system32
来来来,既然揭开了 %SystemRoot%
的神秘面纱,我们就去那个目录下看看,有没有我们的 ipconfig.exe
:
怎么样,是不是跟着 PATH 环境变量的那个表,直接就找到了 ipconfig.exe
程序,你可以点击试试(它应该会闪退,同时打印你本机的 IP 信息)。
笔者上面复现的流程就是告诉你,我们配置的 PATH 环境变量,其实就是为了方便系统去找我们写的那些可执行程序的。
0x03:环境变量 · 实操篇 — 环境变量配置基础
上一小节,笔者简单演示了一下 PATH 环境变量的作用,但我猜有同学肯定还是蒙蒙的,毕竟不是自己实操,那么本节笔者就来进行实操演示。
0x0301:实操基础 — 环境变量在哪里配置
找到 “此电脑”,右击选择 “属性”,会打开系统属性界面:
然后点击 “高级系统设置”,此时就会弹出 “系统属性” 框框,右下角就是 “环境变量”,打开我们就可以进行编辑了:
0x0302:入门实操 — 随便创建一个环境环境变量
既然知道了在哪里配置环境变量,那么接下来我们随便新增一个环境变量看看:
新建后一定要点击确认哦,而且要一直确认到底(啥意思,就是弹出来的三个框都要点确认,才算配置完成)。
配置完成后,我们咋用?肯定是用 CMD 窗口(配置完环境变量后必须要重新打开 CMD 窗口,这样我们刚刚配置的环境变量才会被加载,才能够正常使用)用啦,在 CMD 窗口中输入 Blue17 看看:
如上,我们直接输入 Blue17,会显示它不是内部或外部的命令,这个很正常,因为你本机肯定没有 Blue17.exe 这个程序。但是若我们输入 echo %Blue17%
成功输出了我们前面配置的内容 !!
现在,联想一下 PATH 环境变量中的 %SystemRoot%\system32
,你是不是知道这个东西是咋来的了呀。
0x0303:进阶实操 — 通过 PATH 环境变量劫持系统命令
在核心篇中我们讲解了 PATH 环境变量的作用,以及系统找命令的流程。我们大胆一点,能不能劫持 ipconfig
这个命令?
包可以的呀,笔者决定用 whoami.exe
替换 ipconfig.exe
,先来看劫持前的表现:
老传统,我们先定位 whoami.exe
命令的位置(咋定位?回看我们咋定位 ipconfig.exe
的流程):
然后我们将 whoami.exe
复制出来,笔者放到了自己的桌面上,我本机桌面路径如下:
C:\Users\Hacker\Desktop
来想想如何当我们运行 ipconfig.exe
时,执行 whoami.exe
呢?只要让 whoami.exe
先被当作 ipconfig.exe
找到就行了吧。所以呢,我们得先让 whoami.exe
冒充一下 ipconfig.exe
,咋冒充,手动改个名称就好:
继续,那么如何让我们这个假的 ipconfig.exe
先一步比真的 ipconfig
被找到呢?简单,把假的路径在 PATH 环境变量中放到真的前面就可以了:
OK,万事俱备,我们打开 CMD 窗口输入 ipconfig
看看:
试验完美成功。OK 留个小作业,把 ipconfig
还原回去(还原不回去只能怪自己学艺不精咯,哈哈哈哈)。