当我尝试运行命令时,出现错误“无法找到该命令,因为 '/usr/bin' 未包含在 PATH 环境变量中”

当我尝试运行命令时,出现错误“无法找到该命令,因为 '/usr/bin' 未包含在 PATH 环境变量中”

当我尝试在终端中运行时,出现错误The command could not be located because '/usr/bin' is not included in the PATH environment variable

例如。

jeper@jeper:~$ clear
Command 'clear' is available in '/usr/bin/clear'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
clear: command not found

和喜欢

jeper@jeper:~$ vi
Command 'vi' is available in '/usr/bin/vi'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
vi: command not found

问题是什么?如何解决?

答案1

看起来你的 $PATH 是空的。尝试一下echo $PATH,输出应该与此类似:

/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin

如果没有,您应该检查您的.bash_profile.bashrc.或者如果使用su username命令切换用户,su - username下次应该使用。

答案2

尝试这样做

转到(在终端中输入):

gedit ~/.bashrc

单击 .bashrc 选项卡并将以下内容粘贴到文件底部

export PATH=/usr/bin:$PATH

它会工作得很好:)

答案3

当您在终端中发出命令名称时,系统将在应该找到此类可执行文件的目录列表中查找该名称的可执行文件。该列表称为您的小路在 bash shell(以及大多数其他 *nix shell)中,它保存在$PATH变量中。既然您似乎正在使用 bash,请继续阅读。

$PATH设置在不同的地方。首先,是$PATH在 中建立的系统范围/etc/profile。每个新用户都会继承$PATH那里设置的用户。通常,/usr/bin应该添加到系统$PATH/etc/profile,例如,在我的 Debian 上,我有:

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

然后您就拥有了各种特定于用户的 bash 启动文件。读哪一篇取决于如何您正在启动 bash,无论它是作为交互式还是非交互式 shell 运行,以及它是否是登录 shell。请参阅@Gilles 的非常好的答案这里不同 shell 调用读取的不同文件。

$PATH总而言之,要在不更改系统范围设置的情况下向用户添加特定目录,请将此行添加到您的$HOME/.profile文件中:

PATH="$PATH:/usr/bin"

~/.profile被所有 shell 读取,bash而不仅仅是在您登录时读取一次。~/.bashrc另一方面,每次打开终端时都会读取它,因此这不是您想要设置的位置,$PATH因为您只需要设置一次并且不需要每次打开终端时都重置它。

答案4

转到终端(ctrl+alt+T):

  1. sudo nano ~/.bashrc
  2. 粘贴到文件末尾:

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin:/usr/games:/usr/local/games"
    
  3. ctrl+X-> Y->Enter
  4. source ~/.bashrc

相关内容