更改PATH时找不到Sudo命令

时间:2016-01-15 02:23:23

标签: linux command redhat sudo

当我更改$ PATH时,我遇到了sudo命令的问题 问题:

-bash: id: command not found
-bash: tty: command not found
-bash: uname: command not found

[root@ol6 ~]# sudo
-bash: sudo: command not found

并回显$ PATH

[root@ol6 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin

你能告诉我解决这个问题吗? 谢谢sm。

2 个答案:

答案 0 :(得分:1)

sudo位于 RedHat 上的/usr/bin,但我认为您真正的问题是,当您更改PATH并获得PATH时,您单引$PATH文字$PATH而不是你想要的文字!

答案 1 :(得分:1)

你可能在$PATH变量中得到了文字字符串PATH,当你可能想要在它之前和之后添加一些东西时。我想你在分配时使用单引号来做到这一点:

PATH='/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin'

何时应该使用双引号

PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin"

所以$PATH会扩展到当前值(尽管在当前的shell中为时已晚)。

无论如何,对我来说,sudo位于/usr/bin,所以如果你没有在你的路径中拥有它,你将无法在没有指定完整路径的情况下运行它。