我已经阅读了几个关于如何在OSX上永久设置环境变量的答案。
首先,我尝试了这个,如何在Linux/Unix上永久设置$PATH,但我有一个错误消息说没有这样的文件和目录,所以我想我可以尝试~/。Bash_profile而不是~/。但它没有工作。
其次,我发现了这个解决方案如何设置的$PATH为使用的应用程序在os x,其中建议做改变
~/.MacOSX/environment.plist
但我没有这样的文件和目录错误。
我需要一种方法来设置这些变量,这样就不需要每次打开一个新的终端会话时都一次又一次地设置它们。
我发现有一些文件可能会影响macOS中的$PATH变量(适用于我,10.11 El Capitan),列出如下:
As the top voted answer said, vi /etc/paths, which is recommended from my point of view.
Also don't forget the /etc/paths.d directory, which contains files may affect the $PATH variable, set the git and mono-command path in my case. You can ls -l /etc/paths.d to list items and rm /etc/paths.d/path_you_dislike to remove items.
If you're using a "bash" environment (the default Terminal.app, for example), you should check out ~/.bash_profile or ~/.bashrc. There may be not that file yet, but these two files have effects on the $PATH.
If you're using a "zsh" environment (Oh-My-Zsh, for example), you should check out ~./zshrc instead of ~/.bash* thing.
不要忘记重新启动所有终端窗口,然后回显$PATH。$PATH字符串将是PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2。
注意,前两种方式(/etc/paths和/etc/path.d)在/目录下,这将影响您计算机中的所有帐户,而最后两种方式(~/. path.d)在/目录下。bash*或~/.zsh*)在~/目录下(也就是/Users/yourusername/),这只会影响你的帐户设置。
阅读更多:Mac OS X:设置/更改$PATH变量- nixCraft
显示所有隐藏文件,如.bash_profile和.zshrc
$ ls -a
从macOS Catalina开始,mac使用zsh而不是bash。MAC默认使用zsh。
检查哪个shell正在运行:
$ echo $SHELL
/usr/zsh
$ cd $HOME
$ open -e .zshrc
或者如果使用vim
$ vi .zshrc
然后像这样加进去
$ export my_var="/path/where/it/exists"
$ export PATH=$PATH:/$my_var/bin
例如:如果在/Applications中安装了名为:myapp的应用程序
然后
export MYAPP_HOME=/Applications/myapp
export PATH=$PATH:$MYAPP_HOME/bin
或快捷方式
export PATH=${PATH}:/Applications/myapp/bin
祝你一生幸福!!稍后谢谢我
2021年10月19日。
用一个修正确认iplus26的答案。
测试环境
操作系统:macOS 11.6 (Big Sur) x86_64
外壳:zsh 5.8
下面是$PATH环境变量被修改的顺序:
etc/paths文本文件中的每一行都被追加
在etc/路径中的每个文本文件中的每一行。D目录被追加
最后,在~/.zshrc中进一步修改$PATH
iplus26的回答说“当(你运行)echo $PATH时,$PATH字符串将是PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2”,但这并不总是这样。这将取决于脚本在.zshrc中所做的事情。例:如果我们做某事
PATH="/new/path:${PATH}"
然后,新路径将位于路径列表的开头。然而,如果我们做一些
PATH="${PATH}:/new/path"
然后,新路径将被追加到路径列表的末尾。
当然,您必须确保在~/中导出修改后的路径。zshrc中。
export PATH=$PATH
您可以使用一个方便的命令来“漂亮地打印”路径列表
print -l $path
这将在新行中打印每个路径,以提高可读性。注意$path类似于$path,只是它由一个空格分隔,而不是冒号:。
希望这可以进一步澄清这个线程的新手。