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

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

我已经使用 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命令来查看我的环境显示的内容,但几乎遇到了相同的错误。

答案1

正如错误所言,您应该将/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?

答案2

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

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

    $ 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. 它会要求更改文件,按下yEnter

你完成了。

答案3

当您想向系统变量添加新值时,您最有可能向或文件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`

答案4

您的 PATH 变量已弄乱。您必须在 $PATH 中添加 /usr/bin。要纠正此问题,请在终端上运行以下命令。

export PATH="/usr/bin:$PATH

但是上述命令仅在当前会话中有效,当您注销并重新登录时,您将遇到相同的错误。通过运行以下命令永久设置 PATH

echo "PATH=/usr/bin:$PATH" >> ~/.bash_profile

相关内容