执行node -v或npm -v报command not found,说明环境变量未生效,需据安装方式配置PATH:apt/yum安装自动写入/usr/bin;二进制解压版需手动添加bin路径;nvm依赖shell初始化脚本;用户级npm全局路径应设为~/.npm-global并加入PATH。

直接执行 node -v 或 npm -v 报 command not found,基本就是环境变量没生效——不是没装好,而是系统找不到命令路径。
确认安装方式再配PATH
不同安装方式,PATH配置逻辑完全不同,硬套模板反而会失效:
- 用
apt/yum安装(如sudo apt install nodejs npm):通常自动写入/usr/bin/node和/usr/bin/npm,只需检查$PATH是否含/usr/bin(echo $PATH看一眼就行) - 用官方二进制包解压安装(如
node-v24.18.0-linux-x64):可执行文件在bin/目录下,必须把该路径加进PATH,例如/opt/node/bin或/root/node-v24.18.0-linux-x64/bin - 用
nvm安装:不走系统PATH,靠 shell 初始化脚本(如~/.nvm/nvm.sh)动态注入,所以必须确保source ~/.bashrc(或~/.zshrc)已执行,且该文件里有nvm加载语句
手动加PATH时别写死绝对路径
很多人直接在 ~/.bashrc 里写 export PATH=$PATH:/root/node-v24.18.0-linux-x64/bin,结果换用户、换路径就崩。更稳妥的做法是:
- 把 Node.js 解压到统一位置,比如
/opt/node,再建软链:sudo ln -sf /opt/node-v24.18.0-linux-x64 /opt/node - 然后只加固定路径:
export PATH=$PATH:/opt/node/bin - 每次升级只需改软链目标,不用动
PATH配置 - 注意:如果解压在用户目录(如
~/node),别用sudo写系统级配置(如/etc/profile),否则其他用户无法访问
npm全局模块路径也要同步改
npm install -g 默认装到 /usr/local/lib/node_modules,但普通用户没写权限,容易报 EACCES。正确做法是重定向全局路径:
- 先创建用户级目录:
mkdir ~/.npm-global - 设置 npm 配置:
npm config set prefix '~/.npm-global' - 把该路径加入
PATH(放在~/.bashrc末尾):export PATH=~/.npm-global/bin:$PATH - 重载配置:
source ~/.bashrc,之后npm install -g pm2就不会权限报错
最容易被忽略的是 shell 初始化顺序:如果你用的是 zsh,但只改了 ~/.bashrc,那 source 完也没用;反过来,bash 用户加载了 ~/.zshrc 也白搭。先确认自己当前 shell:echo $SHELL,再改对应配置文件。


















