每当我尝试终端中的基本命令(如sudo或ls )时,都会得到以下错误:
命令'sudo‘在'/usr/bin/sudo’中可用,因为“/usr/bin”未包含在PATH环境变量中,因此无法定位该命令。sudo:找不到命令
输入echo $PATH时,它将返回
/下载/stata安装/stata 15:/下载/stata
我怀疑我在试图安装Stata时弄错了$PATH变量。
我已经尝试过export PATH="/usr/bin:$PATH",它暂时解决了这个问题(来自这个答案)。然后当我做echo $PATH时,它会返回
/usr/bin:/下载/stata安装/stata 15:/下载/stata
但是这个修复是暂时的,当我重新启动终端时,我不能再次使用sudo。
另一个答案说我可以做一个永久的修复:
首先,我做了export PATH=$PATH:/usr/bin,这再次临时解决了问题。当我做echo $PATH时,它会返回
/下载/stata installation/stata15:/Downloads/stata:/usr/bin
然后,我应该能够通过使用/etc/environment编辑sudo nano /etc/environment文件并确保它是永久性的
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games“
当我打开/etc/environment文件时,它已经有了正确的路径,所以没有任何改变。因此,当我重新启动终端时,像sudo这样的基本命令仍然不能工作,我不得不再次执行临时修复。
我怀疑/etc/environment文件不是问题所在,还有另一个文件我需要修改。你知道怎么修吗?
发布于 2019-07-29 16:05:05
$PATH变量?在如何将目录添加到路径中?,以前也有过类似的问题。
$PATH可以在不同的级别和不同的情况下进行更改。在全局级别,$PATH存储在/etc/environment中。更改此设置将更改计算机所有用户的默认$PATH集。
个性化的定制改变可以根据个人的需要在三个地方进行。
/home/$USER/.profile的路径。/home/$USER/.bashrc的路径。/home/$USER/.xsessionrc的路径。通常添加一个新的PATH语句或导出命令,如下所示:
PATH="/path/to/dir:$PATH"或
export PATH="/path/to/dir:$PATH"注意,这些语句在右侧使用$PATH变量。这种向$PATH添加新目录的特定方式是在现有$PATH变量的开头处添加新目录。
中的具体案例
查找上面提到的文件:
/etc/environment/home/$USER/.profile/home/$USER/.bashrc/home/$USER/.xsessionrc找出由于软件Stata安装不当而修改了$PATH的确切位置。在本例中,用/home/$USER/.bashrc进行的修改。
在注释中,三个export语句被添加到/home/$USER/.bashrc中:
export PATH=/Downloads/stata\ installation/stata:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
export PATH=/Downloads/stata\ installation/stata15:/Downloads/stata installation/stata第一个export语句在默认$PATH的开头添加/Downloads/stata\ installation/stata。第二个export语句将$PATH重置为默认目录集。第二个export语句尝试将$PATH设置为一些Stata目录,但在空格之前忽略了转义字符\,并将/Downloads/stata installation/stata设置为/Downloads/stata。
由于Stata没有安装在这台计算机上,所以您不需要进行任何这些修改。您可以将所有导出语句注释为:
#export PATH=/Downloads/stata\ installation/stata:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
#export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
#export PATH=/Downloads/stata\ installation/stata15:/Downloads/stata installation/stata注意,在每一行的开头插入#将它们标记为注释。如果在注释这些export命令之后一切正常,您可以从.bashrc文件中删除它们。
注释掉或删除这三行将是您的bash会话,而不需要定制$PATH变量。您将使用/etc/environment中设置的默认值。
希望这能有所帮助
https://askubuntu.com/questions/1161740
复制相似问题