为什么C:windows;C:WindowsSystem32;C:WindowsSysWOW64会默认加到系统Path环境变量里去。
答:
因为Windows操作系统,很多很多系统级别的.exe都放到了这3个目录下, 请看我的everything搜索截图,
C:WindowsSysWOW64下边一共就找到174个.exe可执行程序。
操作系统及其他App,都会依赖这些.exe,
所以这几个默认的路径,务必保留在Path环境变量里去。
不然会导致很多系统命令无法正常调用或执行。
同理,Linux的/usr/bin下面,
或者/usr/local/bin下面,一样的能发现很多很多系统命令。
bin代表binary, 就是二进制的可执行程序的以上,
很多软件安装包都有一个bin文件夹,
用于存放可直接执行的二进制可执行程序。
为什么在cmd里,可以只输入python, 而不需要输入python.exe
答:
这是因为cmd有允许部分文件,不输入后缀的情况下,
直接运行这个文件。
比如说:
python.exe, 只需要cmd输入python即可
batch.bat,只需要cmd输入batch即可
具体哪些文件类型,是可以不接后缀的,
PATHEXT这个环境变量是有做定义的,
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
你试试:
你将zipython.txt丢到C:windows去,
必须要运行zipython.txt,不然我任何效果。
因为.TXT的是没用添加到PATHEXT里去的。
只有.exe, .bat这种文件才能放到Path环境变量里去吗?
答:
不是哦, 任何文件都可以丢到Path环境变量里去。
比如我创建一个文件,叫zipython.txt, 丢到C:Windows里去
cmd运行zipython.txt, 也同样可以打开, 所以是任何文件,当你在cmd里请求时,都会遵行:
- 优先在当前路径里找
- 如果当前路径找不到,去Path环境变量里的各个路径下去找
- 如果Path环境变量里有多个zipython.txt,只会打开最前面那个zipython.txt
JAVA_HOME环境变量
Path环境变量,只是其中一个用的最多环境变量,
Windows上通过set命令,我们可以看到很多其他的环境变量,
Linuxs上通过env命令,我们可以看到很多其他的环境变量,
常见的其他环境变量包括我们常见的:
JAVA_HOME, 这个环境变量,一般是比如依赖Java虚拟机的程序,
比如Android的模拟器,他肯定是需要你配置JAVA_HOME的,
不然运行不起来,Android模拟器会去JAVA_HOME环境变量找
(注意不是去Path环境变量里找)。
环境变量相关的命令
操作系统 | 命令 | 释义及用法举例 |
---|---|---|
Windows | where | 【释义】: 可以查看某个命令所在的Path环境变量中的绝对路径。 一般可用于查看某命令,其路径是否已经加到Path环境变量 或用于查看Path环境变量中,到底有多少个该命令的绝对路径 【用法举例】: where python where adb where ftp |
Windows | set | 【释义】: 查看系统所有的环境变量配置表。 常见的比如Path, JAVA_HOME,PATHEXT等环境变量等。 【用法举例】: set set |
Linux | which | 【释义】: 可以查看某个命令所在的PATH环境变量中的绝对路径。 一般可用于查看某命令,其路径是否已经加到Path环境变量 或用于查看Path环境变量中,到底有多少个该命令的绝对路径 【用法举例】: which python which adb which ftp |
Linux | env | 【释义】: 查看系统所有的环境变量配置表。 常见的比如PATH, JAVA_HOME等环境变量等。 【用法举例】: env env | grep PATH |
更多更好的原创文章,请访问官方网站:www.zipython.com
原文链接:https://www.zipython.com/#/detail?id=f0956a20eef14007a57495abedc26353
也可关注“武散人”微信订阅号,随时接受文章推送。