无法执行终端命令:“命令'sudo'在'/ usr / bin / sudo'中可用”


13

我使用Ubuntu 12.04已有相当长的一段时间了,从来没有遇到过这样的问题。我试图在我的Ubuntu系统上安装python 3.2,并且每次我运行代码来编译python源代码时,都会出现此错误:

'Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found'

我也尝试运行gksudo命令来查看环境显示的内容,但是我几乎得到了相同的错误。


我敢打赌,当您尝试通过命令行运行应用程序时,您可能会遇到相同的错误。输出是cat /etc/environment什么?
Alaa Ali

您能告诉我们您要执行什么程序吗?有些程序会更改PATH变量,但没有名称我们无法确定。
Braiam 2013年

Answers:


24

如错误所示,您应该将/usr/bin目录添加到PATH环境变量中。为此,请在终端中运行以下命令:

export PATH=$PATH:/usr/bin

使用后sudo,您可以编辑/etc/environment文件以使更改永久生效,因此,请在终端中运行:

sudo nano /etc/environment

编辑文件。确保路径是这样的:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

使用Ctrl+ 保存并关闭文件,X然后Y在出现询问时按。

另请参阅:如何将目录添加到PATH?


但是,这不是永久的,对不对?如果他重新启动,它将再次消失。
Alaa Ali

1
是。为用户永久设置有可能的~/.profile~/.bashrc~/.pam_environment~/.xsessionrc。为所有用户设置有可能是在/etc/profile/etc/profile.d/*/etc/environment/etc/bash/bashrc/etc/lightdm/xsession。您的用户文件之一可能会覆盖默认的系统范围设置。如果您启用了另一个用户或来宾帐户,请尝试与另一个用户一起查看该用户是否也存在问题。如果不是,请检查您自己的用户启动脚本文件。
soulsource

1
效果很好。非常感谢你!但是,能否请您添加更多有关如何进行永久更改的信息???提前致谢。
OscaRoCa 2014年

我收到此错误:MY_USER_NAME不在sudoers文件中。将报告此事件。,我不是管理员..我必须做的..
加纳姆

6

我遇到了问题,并通过编辑.bashrc文件解决了该问题

  1. 使用nano打开您的.bashrc文件

    $ sudo nano ~/.bashrc
    
  2. 将以下行添加到bashrc文件中

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. 按Ctrl + X保存文件

  4. 它将要求更改文件,按y并按Enter

你完成了。


1
请勿使用来操纵主目录(~)中的文件sudo。它可能会产生超出解决范围的问题。
Melebius

1

当您想向PATH系统变量添加新值时,很可能在~/.bashrc~/.bash_profile文件中添加新行。

例如,如果要添加/opt/netbeans/binPATH,则必须将此行添加到~/.bashrc文件末尾:

export PATH=$PATH:/opt/netbeans/bin

让我们分解这条线。

  • export PATH-这里我们指的是PATH变量
  • =-我们想使用运算符为它分配一个新值=(字符串的其余部分是将存储在中的值PATH
  • $PATH-我们将变量分配给当前命令之前变量PATH中的值
  • : -我们为新值添加了分隔符
  • /opt/netbeans/bin -并将新值添加到 PATH

您必须PATH~/.bashrc~/.bash_profile文件中看到所有对变量的引用,并确保展开 -

export PATH=$PATH:/opt/netbeans/bin

不是像这样覆盖-

export PATH=/opt/netbeans/bin

PATH变量

您必须确保在每次引用所PATH使用的内容$PATH:及其后的附加值


如果不起作用,则可以执行以下操作:

  • 确保文件中存在下一个变量之类的东西,/etc/environment并且此文件中从未对其进行过重新定义:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • 将缺少的路径从上述PATH变量添加到PATH位于/etc/environment

在文件中的每个更改之后进行测试之前,请不要忘记更新您的配置。

例如~/.bashrc文件:

source `~/.bashrc`
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.