Linux系统使用sudo遇到command not found的情况处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统使用sudo遇到command not found的情况处理相关的知识,希望对你有一定的参考价值。

    一般通过编译安装或二进制拷贝的软件路径会选择自定义路径,以nodejs软件为例,如:/usr/local/node6.10/bin。这个时候在使用sudo命令运行的时候会提示command not found。出现这个问题的原因是/etc/sudoers配置文件中有这么一个配置:

 79 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

    由此可知,默认路径里面是没有我们自定义安装软件的路径的,所以node这个命令是找不到的。我们只需要将node的路径添加到这个一行后面即可。

 79 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/node6.10/bin

另外还有几个解决办法:

    1): 用命令的绝对路径。

    2): 使用sudo的env选项,像这样sudo env PATH=$PATH cmd.sh。

    3): 把脚本拷贝或链接到系统$PATH中。

   4): 重新编译sudo,不带–with-secure-path选项了.(终极解决办法)。

以上方法请自行参考是使用哪一种,我比较喜欢最开始介绍的那种,比较可控,使用起来也比较方便。


以上是关于Linux系统使用sudo遇到command not found的情况处理的主要内容,如果未能解决你的问题,请参考以下文章

sudo: ulimit: command not found

Linux系统安装dpkg命令详细过程(sudo: dpkg: command not found的解决)

linux sudo下composer command not found的问题

How to fix 'sudo: no tty present and no askpass program'以及硬盘序列号的读写

sudo命令

用Ubuntu的linux,在终端输入命令总显示:command no found. 怎么回事啊?谢谢。