终端命令是怎么被执行的
window 在终端 输入node是怎么知道有这个命令的
在 Windows 终端中输入
node
时,系统能够找到并执行该命令,是因为它遵循了一套 环境变量(Environment Variables) 和 搜索路径(PATH) 机制
步骤 | 系统行为 |
---|---|
1. 检查是否是内部命令 | 如果不是,继续查找 |
2. 查找当前目录 | 检查是否有 node.exe |
3. 检查 PATH 变量 | 在所有 PATH 目录中查找 node.exe |
4. 找到则执行 | 运行 node.exe |
5. 找不到则报错 | 提示 'node' 不是命令 |
1. 检查是否是内部命令
Windows 终端(cmd
或 PowerShell
)首先会检查 node
是否是:
- 内置命令(如
dir
、cd
、echo
等) →node
不是内置命令,继续查找。
2. 查找当前目录
终端会检查 当前工作目录 是否有可执行文件:
node.exe
node.cmd
node.bat
node.ps1
(PowerShell 脚本)
如果当前目录有 node.exe
,就会直接执行它。否则,继续查找。
3. 检查 PATH
环境变量
如果当前目录没有 node
,系统会去 PATH
环境变量 列出的目录中查找。
如何查看 PATH
?
-
在
cmd
中运行:cmd
echo %PATH%
-
在
PowerShell
中运行:powershell
$env:PATH
你会看到类似这样的输出(多个路径用
;
分隔):text
C:\Windows\System32;C:\Windows;C:\Program Files\nodejs;...
系统会按顺序在这些路径中查找
node.exe
。
4. 如果找到 node.exe
,就执行它
例如,如果 PATH
包含:
text
C:\Program Files\nodejs
并且该目录下有 node.exe
,那么输入 node
时就会执行:
text
C:\Program Files\nodejs\node.exe
5. 如果找不到,报错
如果 PATH
没有包含 node.exe
所在的目录,就会报错:
text
'node' 不是内部或外部命令,也不是可运行的程序或批处理文件。
这说明:
- Node.js 没有安装,或者
- Node.js 的安装路径没有添加到
PATH
。