我的nodejs是在官网下载的,并且里链接到了/usr/local/bin这个目录里面
这样子root用户登录的时候执行npm和node命令是正常的
但是使用sudo npm install的时候就会提示
-bash: npm: 未找到命令
-bash: node: 未找到命令
这是因为sodu运行时的环境目录与root登录运行命令的环境目录不一致,修改sudo的运行环境目录就可以了
如果你想使用 sudo
命令来以管理员权限运行 node
命令,可以按照以下步骤进行:
-
执行以下命令,编辑
sudo
的配置文件:sudo visudo
-
在打开的文件中,找到
Defaults secure_path
部分,并在其后添加npm/node所在目录:Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
这将告诉
sudo
命令在执行时安全目录的环境变量。把node所在目录添加上去即可,我这里的node所在目录是 /usr/local/bin 这里要注意一下目录直接使用 : 进行拼接Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
-
保存并退出文件。
现在,你应该能够使用 sudo
命令以管理员权限运行 node
命令。例如:
sudo node your_script.js
那么怎么查看node所在目录呢
要查看 node
命令所在的目录,可以使用以下命令:
which node
执行此命令后,终端将显示出 node
命令的完整路径,例如 /usr/bin/node
或 /usr/local/bin/node
。
另外,你还可以使用 whereis
命令来查找 node
命令,它将提供更详细的信息,例如二进制文件、man 手册和源代码的位置:
whereis node
这将显示包含 node
相关文件的路径。
通过这些命令,你可以找到 node
命令所在的目录。请注意,具体路径可能会因操作系统和安装方式而有所不同。