问题
- Ubuntu 下使用未使用 sudo 安装的指令,当需要一些高权限操作的时候,加上 sudo 后提示指令不存在。例如普通用户下安装 node 版本管理工具 n 后,通过 n 安装多版本的 node 时,会提示权限不够,但是加上 sudo 后,又提示指令 n 找不到。
原因
- sudo 默认的配置文件下指定了三个命令位置
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
方法
- 查看指令位置
which n // 得到结果 /home/linuxbrew/.linuxbrew/bin/n - 将指令 ln 到sudo 下
sudo ln -s /home/linuxbrew/.linuxbrew/bin/n /usr/bin/n - 此时运行 sudo n 就可以正常执行了,当然,直接用绝对路径运行也可以( sudo /home/linuxbrew/.linuxbrew/bin/n )
如有错漏之处,敬请指正