如何在Mac OS X上重置$ PATH变量?


17

我弄乱了我的path变量,现在我运行的某些应用程序出现错误,提示日期睡眠之类的命令未找到命令(错误127)。当直接在shell中执行时,这些命令可以正常工作。

我猜想这与格式错误的$ PATH变量有关,并且需要知道如何重置它。我已经删除了文件的〜/ .bashrc〜/ .bash_profile中/etc/bash.bashrc,并在〜/ .bashrc〜/ .profile文件

还有哪些其他文件可以保存我的$ PATH?有没有比挖掘无数个可以保存我的路径的文件更简单的方法来重置路径?

注意,此路径问题仅与我的用户有关。我在系统上创建了一个测试用户,并且路径正常,恢复了正常。

更新:谢谢。我不知道我删除了哪个文件,但是事情又恢复了。你们做了“专家”做不到的事情。是的,克里斯,你是对的。我进行的PATH定制在bash_login中。但是在不删除这些自定义的情况下,它以某种方式起作用。我想可能是因为我使用的是名为“ RCEnvironment”的预浸料,并且我输入了带引号和:PATH的路径。我不知道是否使用引号,并且它不会代替:$ PATH,所以这可能是错误的根源。我忘了我什至吃了那个馅饼!


1
/ etc / profile是最可能设置PATH初始值的地方,但是那里的东西会影响所有用户。还有〜/ .bash_login,您没有列出(尽管您可能已经删除了它)。
克里斯·约翰森

Answers:


19

如果您有〜/ .MacOSX / environment.plist文件,请检查它是否提供默认的PATH值。

如果它是XML格式(plins可以是多种格式),则可以使用任何文本编辑器进行编辑。plutil -lint ~/.MacOSX/environment.plist如果手动编辑,请进行检查。

或者,您可以使用默认值PlistBuddy等命令对XML或二进制格式的plist文件进行受控修改。


您始终可以在任何外壳程序的初始化文件中设置自己的PATH。

在您的Shell的启动文件(.bashrc.bash_profile/ .bash_login/ .profile)中放入以下内容:

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

这将覆盖启动外壳程序时设置的默认PATH(第一个PATH=不使用$PATH,因此它将始终仅以您提供的内容开头)。

只有“登录”文件的人会被使用(即存在并且可读的第一个~/.bash_profile~/.bash_login~/.profile将被使用)。.profile是为了与其他Shell向后兼容-如果您使用它,请确保不要使用bash特有的语法。如果您使用.bash_login.bash_profile(除了名称,它们在功能上是等效的),请[[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]在顶部附近使用类似的行,以便登录shell也可以在中进行自定义.bashrc

如果您希望bash的所有实例都具有相同的PATH,请使用.bashrc。如果您经常从命令行以交互方式修改单个Shell的PATH并想在子Shell中使用修改后的PATH(这种情况可能并不常见),则应将语句放在“ login”文件之一中。仅选择一个登录文件并使用它。


8

1.打开终端

2.您可以首先检查您的当前$PATH输入

回声$ PATH

到终端

3.如果$PATH那个终端还给你的是你想要的路径,那你就好了;如果不是,请键入

导出PATH = / usr / bin:/ bin:/ usr / sbin:/ sbin

,然后输入

触摸〜/ .bash_profile

,然后输入

打开〜/ .bash_profile

,您将找到一个EditText打开,现在在该EditText中键入所需的路径;例如,键入

路径= / usr / bin:/ bin:/ usr / sbin:/ sbin

(这是$PATHmac 的默认设置,考虑到您想重置它,$PATH因此您可能应该键入它),保存它,然后关闭EditText,然后关闭Terminal。

4.现在,您已经更改了自己的设置$PATH或将其重置为Mac的默认设置$PATH


2
我觉得上面有很多东西没有效果。您为什么认为这touch是必需的?另外,无论如何关闭终端,为什么要export在命令行上运行,而不是仅将其添加到~/.bash_profile(也需要export)并完成它?(或者,source ~/.bash_profile将更改应用到当前窗口。)
Arjan 2015年

是的,其中有些是多余的。将任何PATH值保存到.bash_profile都应该执行。
ThinkCode 2017年

1

克里斯·约翰逊(Chris Johnson)rc/profile所做的修改在中也可以正常使用/etc/profile

我只是附上:

export PATH="/usr/local/mariadb/bin:$PATH"

/etc/profileMac OS X 10.9 Mavericks中的文件中以完成MariaDB安装(这是MySQL的很好的直接替代品)。


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.