为什么C:\windows;C:\Windows\System32;C:\Windows\SysWOW64会默认加到系统Path环境变量里去。

答:
因为Windows操作系统,很多很多系统级别的.exe都放到了这3个目录下, 请看我的everything搜索截图,
C:\Windows\SysWOW64下边一共就找到174个.exe可执行程序。
 《自拍教程28》环境变量的扩展阅读 Python

操作系统及其他App,都会依赖这些.exe,
所以这几个默认的路径,务必保留在Path环境变量里去。
不然会导致很多系统命令无法正常调用或执行。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

同理,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里请求时,都会遵行:

  1. 优先在当前路径里找
  2. 如果当前路径找不到,去Path环境变量里的各个路径下去找
  3. 如果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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄