当我尝试在终端中运行时,出现错误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):
sudo nano ~/.bashrc
粘贴到文件末尾:
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin:/usr/games:/usr/local/games"
ctrl+X
->Y
->Enter
source ~/.bashrc