序
开发人员建立本机开发环境,经常需求装置各种东西,如git
、npm
、python
等。他们常常会被咱们自动或者被动的在指令行中调用。
一个比较常见的错误是:
xxx 不是内部或外部指令,也不是可运转的程序或批处理文件。
这与操作体系的环境变量有关,环境变量是初级开发者有必要了解的知识。
下面以 win11 为例,让咱们了解环境变量这一概念。
中心概念
Windows 11操作体系中,变量分为用户变量和体系变量。
- 用户变量:是指只对当时用户有用的环境变量,只影响当时用户的会话。
- 体系变量:是指对一切用户有用的环境变量,影响整个体系的运转环境。
用户变量和体系变量都是存储在操作体系中的字符串值,能够包括途径、文件名、装备信息等。无论是用户变量仍是体系变量,都能够在指令行或脚本中运用%变量名%的方式来引用它们的值。例如,%USERPROFILE%是一个用户变量,它指向当时用户的个人文件夹途径。
面板检查
- 运用查找功用找到
修改体系环境变量
,点击进入 - 点击
环境变量
, 即可检查环境变量
面板
- 经过修改按钮可对选中环境变量修改
指令行
检查
在PowerShell中,能够运用以下指令来检查环境变量的值:
- 输入“Get-ChildItem Env:”指令并按Enter键。这将显现一切环境变量及其值。
- 若要检查特定环境变量的值,能够运用 $env:变量名 语法。例如,要检查PATH环境变量的值,能够输入“$env:PATH”并按Enter键。
CMD中,能够运用以下指令来检查环境变量的值:
-
输入“set”指令并按Enter键。这将显现一切环境变量及其值。
-
若要检查特定环境变量的值,能够输入“echo %变量名%”指令并按Enter键。例如,要检查PATH环境变量的值,能够输入“echo %PATH%”并按Enter键。
假如变量的值包括空格或其他特别字符,则需求将其放在引号中。例如,要检查包括空格的变量MY VARIABLE的值,能够输入“echo “%MY VARIABLE%””并按Enter键。
设置
要在PowerShell中设置环境变量,能够运用以下指令:
- 运用$env:变量名=”变量值”指令来设置环境变量
- 设置环境变量后,能够运用“$env:变量名”指令来检查变量的值
要在CMD中设置环境变量,能够运用以下指令:
- 输入“set 变量名=变量值”指令并按Enter键
- 设置环境变量后,能够运用“echo %变量名%”指令来检查变量的值。
请留意,设置的环境变量只在当时会话窗口中有用。假如要在一切指令行窗口中运用该环境变量,需求将其经过面板增加到体系环境变量中。
Path
Path环境变量是操作体系中非常重要的环境变量之一,它用于指定可履行文件的查找途径,让操作体系能够在任何目录下找到体系所需的可履行文件。具体来说,当用户在指令行界面上输入一个可履行文件的名称时,操作体系会在Path环境变量指定的途径中查找该文件,并将其加载到内存中履行。
Path环境变量的意义在于,它能够让用户或应用程序方便地履行任何可履行文件,而不需求知道该文件的具体位置。
所以,当用户装置一些软件时,软件可能会增加或让用户挑选增加,自己装置后的可履行文件夹途径,到Path环境变量中,以便用户能够方便地履行该软件的可履行文件。
反之,假如未在装置时增加可履行文件夹途径。则会在直接运用时,得到相似:xxx 不是内部或外部指令,也不是可运转的程序或批处理文件
的警告。此时,就需求用户手动增加可履行文件夹途径到PATH环境变量中。
以 CMake 为例
CMake 是一个跨平台的开源构建东西,用于自动化 C++ 程序的构建、测试和打包进程。
仅作为演示用例,无所谓功用。
装置
1.从 cmake.org 下载装置包
-
依据指引装置
留意,这儿就是在装置时是否挑选将可履行文件写入 PATH 环境变量(体系变量或用户变量)。
为了演示,咱们挑选不增加(默许)。
-
挑选装置目录
-
完成装置
设置环境变量
由于在装置时,没有增加环境变量。所以,现在履行 cmake
指令时,找不到可运转程序的。
咱们需求手动增加环境变量:
-
翻开环境变量面板
-
选中 Path ,点击修改
-
复制可履行文件夹途径
-
点击新增
-
复制途径
-
逐一点击确定,至封闭一切相关面板
-
翻开指令行东西验证
在装备途径时,咱们也能够经过 %变量名% 引用已有的环境变量。
例如,咱们已经将Java的装置途径增加到体系环境变量 JAVA_HOME , 在 Path 中增加可履行文件夹,只需求运用 %JAVA_HOME%\bin .
结
了解环境变量这一个概念,咱们可知
- 运用指令行是体系经过 Path 找到并履行对应可履行文件,假如出现调用异常,咱们能够自行排查环境变量来修正
- 假如软件装置时未挑选增加可履行文件到 Path ,或者运用某些绿色免装置版的东西,都能够手动到环境变量面板上去增加
- 咱们能够使用“指令行设置的环境变量只在当时会话窗口中有用”,来简化在一个会话中的指令,例如重复运用的文件途径等。
- 假如咱们在 Path 中, 经过 %变量名% 引用已有的环境变量。在会话中修改该变量,就可快速切换该变量指向的可履行文件夹。经过这一点能够实现,在当时会话中,暂时切换某一可履行文件的版别。