如何在Ubuntu中将$ PATH重置为其默认值?


31

$PATH尝试在中添加新目录时,我不小心取消了的所有目录~/.bashrc。我在编辑时打开了一个新的终端窗口,现在$PATH为空。我担心是否要从其他驱动器启动才能找到$PATH该驱动器。

基本上,默认结果是echo $PATH什么?


1
注释掉或修复该出口线,您应该一切顺利。

~/.bashrc虽然是设置环境变量的错误位置。您应该~/.profile改为这样做。
盖尔哈2012年

是的,我知道了。在新终端之前打开的另一个终端窗口中,PATH仍然很好,因此只需通过添加:$PATH末尾的固定修复导出行即可恢复PATH。是的,~/.profile其中有代码“设置PATH,以便它包含用户的私有bin(如果存在)”,即$HOME/bin
Cee 2012年

Answers:


35

您的问题的答案是:

PATH=$(getconf PATH)

并可以在任何符合POSIX的系统上使用。选择的答案是在不消除现有内容的前提下扩展路径的正确方法。如果您使用bash,则可以考虑:

PATH+=:$mynewdir

sed: No such file or directory在长时间运行的过程中意外将PATH设置为空后,我无法使用很多命令(麻烦类型)。我不能用getconf。要重置路径,我使用$(export $(cat /etc/environment)":/usr/bin/additional:/usr/bin/paths")。奇怪的/etc/environment是,在许多Linux版本中,PATH变量最初是在哪里设置的。
尼克·布尔

2
这样的工作会让我感到惊讶。也许没有周围的“ $(...)”东西的“ export”可能会出现,但无论发生什么事情,它都可以。使用“源/ etc / ..”。无论如何,如果甚至找不到“ getconf”,请尝试“ / usr / bin / getconf”。
2015年

在事后看来,比起我的方法,更喜欢使用完整路径的最终想法!感谢您的答复
Nick Bull 2015年

1
如果PATH变量为空,则将PATH=$(getconf PATH)无用,只会导致bash: getconf: No such file or directory
Max N

1
如果PATH为空,请注意上面的注释:尝试“ / usr / bin / getconf”。如果那不起作用,那么您需要了解系统将其POSIX命令存储在何处并使用该目录。
布鲁斯

17

您可以在/ etc / environment上找到它:

$ /usr/bin/cat /etc/environment

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

因此,只需提供它:

$ source /etc/environment 
$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

1
cat不会像您的回答那样工作,因为没有$ PATH
Josef Klimuk

你是对的。我刚刚修改了答案。谢谢!
曼努埃尔·耶稣·罗德里格斯

8

在导出行的末尾添加:$ PATH可解决问题,例如 export PATH=<directory to be added>:$PATH

我将此行添加到~/.bash_rc文件中,而不是~/.profile文件中,因此我可以在新终端中立即看到效果,并且基于其他信息,可以基于此处的信息:https : //superuser.com/questions/176404/linux-bash-not-在新会话中加载配置文件

对我来说,echo $PATH添加新目录之前的默认输出是:

/ usr / lib / lightdm / lightdm:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games


3

默认路径是

/home/_username_/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 

希望这对您有帮助


这与我的默认PATH不同。见下文。
Cee 2012年
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.