开发人员建立本机开发环境,经常需求装置各种东西,如gitnpmpython 等。他们常常会被咱们自动或者被动的在指令行中调用。

一个比较常见的错误是:

xxx 不是内部或外部指令,也不是可运转的程序或批处理文件。

这与操作体系的环境变量有关,环境变量是初级开发者有必要了解的知识。

下面以 win11 为例,让咱们了解环境变量这一概念。

中心概念

Windows 11操作体系中,变量分为用户变量和体系变量。

  1. 用户变量:是指只对当时用户有用的环境变量,只影响当时用户的会话。
  2. 体系变量:是指对一切用户有用的环境变量,影响整个体系的运转环境。

用户变量和体系变量都是存储在操作体系中的字符串值,能够包括途径、文件名、装备信息等。无论是用户变量仍是体系变量,都能够在指令行或脚本中运用%变量名%的方式来引用它们的值。例如,%USERPROFILE%是一个用户变量,它指向当时用户的个人文件夹途径。

面板检查

  1. 运用查找功用找到 修改体系环境变量,点击进入
  2. 点击 环境变量, 即可检查 环境变量 面板

【开发常识】以 win11 为例介绍环境变量

  1. 经过修改按钮可对选中环境变量修改

指令行

检查

在PowerShell中,能够运用以下指令来检查环境变量的值:

  1. 输入“Get-ChildItem Env:”指令并按Enter键。这将显现一切环境变量及其值。
  2. 若要检查特定环境变量的值,能够运用 $env:变量名 语法。例如,要检查PATH环境变量的值,能够输入“$env:PATH”并按Enter键。

CMD中,能够运用以下指令来检查环境变量的值:

  1. 输入“set”指令并按Enter键。这将显现一切环境变量及其值。

  2. 若要检查特定环境变量的值,能够输入“echo %变量名%”指令并按Enter键。例如,要检查PATH环境变量的值,能够输入“echo %PATH%”并按Enter键。

    假如变量的值包括空格或其他特别字符,则需求将其放在引号中。例如,要检查包括空格的变量MY VARIABLE的值,能够输入“echo “%MY VARIABLE%””并按Enter键。

设置

要在PowerShell中设置环境变量,能够运用以下指令:

  1. 运用$env:变量名=”变量值”指令来设置环境变量
  2. 设置环境变量后,能够运用“$env:变量名”指令来检查变量的值

要在CMD中设置环境变量,能够运用以下指令:

  1. 输入“set 变量名=变量值”指令并按Enter键
  2. 设置环境变量后,能够运用“echo %变量名%”指令来检查变量的值。

请留意,设置的环境变量只在当时会话窗口中有用。假如要在一切指令行窗口中运用该环境变量,需求将其经过面板增加到体系环境变量中。

Path

Path环境变量是操作体系中非常重要的环境变量之一,它用于指定可履行文件的查找途径,让操作体系能够在任何目录下找到体系所需的可履行文件。具体来说,当用户在指令行界面上输入一个可履行文件的名称时,操作体系会在Path环境变量指定的途径中查找该文件,并将其加载到内存中履行。

Path环境变量的意义在于,它能够让用户或应用程序方便地履行任何可履行文件,而不需求知道该文件的具体位置。

所以,当用户装置一些软件时,软件可能会增加或让用户挑选增加,自己装置后的可履行文件夹途径,到Path环境变量中,以便用户能够方便地履行该软件的可履行文件。

反之,假如未在装置时增加可履行文件夹途径。则会在直接运用时,得到相似:xxx 不是内部或外部指令,也不是可运转的程序或批处理文件 的警告。此时,就需求用户手动增加可履行文件夹途径到PATH环境变量中。

以 CMake 为例

CMake 是一个跨平台的开源构建东西,用于自动化 C++ 程序的构建、测试和打包进程。

仅作为演示用例,无所谓功用。

装置

1.从 cmake.org 下载装置包

【开发常识】以 win11 为例介绍环境变量

  1. 依据指引装置

    【开发常识】以 win11 为例介绍环境变量

    留意,这儿就是在装置时是否挑选将可履行文件写入 PATH 环境变量(体系变量或用户变量)。

    为了演示,咱们挑选不增加(默许)。

  2. 挑选装置目录

    【开发常识】以 win11 为例介绍环境变量

  3. 完成装置

设置环境变量

由于在装置时,没有增加环境变量。所以,现在履行 cmake 指令时,找不到可运转程序的。

【开发常识】以 win11 为例介绍环境变量

咱们需求手动增加环境变量:

  1. 翻开环境变量面板

  2. 选中 Path ,点击修改

  3. 复制可履行文件夹途径

  4. 点击新增

  5. 复制途径

    【开发常识】以 win11 为例介绍环境变量

  6. 逐一点击确定,至封闭一切相关面板

  7. 翻开指令行东西验证

    【开发常识】以 win11 为例介绍环境变量

在装备途径时,咱们也能够经过 %变量名% 引用已有的环境变量。

例如,咱们已经将Java的装置途径增加到体系环境变量 JAVA_HOME , 在 Path 中增加可履行文件夹,只需求运用 %JAVA_HOME%\bin .

了解环境变量这一个概念,咱们可知

  • 运用指令行是体系经过 Path 找到并履行对应可履行文件,假如出现调用异常,咱们能够自行排查环境变量来修正
  • 假如软件装置时未挑选增加可履行文件到 Path ,或者运用某些绿色免装置版的东西,都能够手动到环境变量面板上去增加
  • 咱们能够使用“指令行设置的环境变量只在当时会话窗口中有用”,来简化在一个会话中的指令,例如重复运用的文件途径等。
  • 假如咱们在 Path 中, 经过 %变量名% 引用已有的环境变量。在会话中修改该变量,就可快速切换该变量指向的可履行文件夹。经过这一点能够实现,在当时会话中,暂时切换某一可履行文件的版别。