在OSX中永久设置PATH环境变量

我已经阅读了几个关于如何在OSX上永久设置环境变量的答案。

首先,我尝试了这个,如何永久设置$PATH在Linux/Unix,但我有一个错误消息说no such file and directory,所以我认为我可以尝试~/.bash_profile而不是~/.profile,但它不起作用。

其次,我找到了这个解决方案如何设置在os x应用程序使用的$PATH,它建议在

~ / .MacOSX / environment.plist

但我再次有no such file and directory错误。

我需要一种方法来设置这些变量,这样就不需要每次打开一个新的终端会话时都一次又一次地设置它们。

348924 次浏览

你必须将它添加到/etc/paths

引用(适用于我):在这里

你还可以加上这个

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

~/.bash_profile,然后创建~/.bashrc,在那里你可以向PATH添加更多路径。.的例子

export PATH=$PATH:.

我发现有一些文件可能会影响macOS中的$PATH变量(适用于我,10.11 El Capitan),列出如下:

  1. 正如投票最多的答案所说,vi /etc/paths,从我的角度来看,这是推荐的。

  2. 也不要忘记/etc/paths.d目录,其中包含的文件可能会影响$PATH变量,在我的例子中设置gitmono-command路径。你可以ls -l /etc/paths.d列出项目,rm /etc/paths.d/path_you_dislike删除项目。

  3. 如果你正在使用“bash”环境(例如默认的Terminal.app),你应该检查~/.bash_profile~/.bashrc。可能还没有那个文件,但这两个文件对$PATH. conf有影响。

  4. 如果你正在使用“zsh”环境(例如,Oh-My-Zsh),你应该检查~./zshrc而不是~/.bash*之类的东西。

不要忘记重新启动所有的终端窗口,然后echo $PATH$PATH字符串将是PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2

注意,前两种方式(/etc/paths/etc/path.d)在/目录下,这将影响您计算机中的所有帐户,而最后两种方式(~/.bash*~/.zsh*)在~/目录下(又名/Users/yourusername/),这只会影响您的帐户设置。

阅读更多:Mac OS X:设置/更改$PATH变量- nixCraft

您可以打开以下任何一个文件:

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login(如果.bash_profile不存在)
  • ~/.profile(如果.bash_login不存在)

并添加:

export PATH="$PATH:your/new/path/here"

在Mac中设置路径有两种方法。

  1. 为变量name创建一个文件,并将路径粘贴在下面 /etc/paths.
  2. . D和源文件到profile_bashrc
  3. 导出~/.profile_bashrc中的路径变量as

    export VARIABLE_NAME = $(PATH_VALUE)

和源路径。它简单而稳定。

你可以通过Mac terminallinux设置任意path variable

对于MacOS环境变量path中要添加的新路径,只需在/etc/paths.d目录下创建一个新文件,并在该文件中添加要设置的写路径。重启终端。您可以在提示符下检查echo $PATH,以确认路径是否添加到环境变量中。

例如:向PATH变量中添加一个新路径/usr/local/sbin:

cd /etc/paths.d
sudo vi newfile

将路径添加到newfile并保存它。

重新启动终端并输入echo $PATH进行确认

如果您正在使用zsh,请执行以下操作。

  1. 打开.zshrc文件nano $HOME/.zshrc

  2. 你将在这里看到注释的$PATH变量

    < p > # If you come from bash you might have to change your $PATH. < / p >
    # export PATH=$HOME/bin:/usr/local/...
  3. 删除注释符号(#),并使用分隔符(:)像这样添加你的新路径。

< p >出口 路径= $ HOME / bin: / usr /地方/ bin: /用户/ ebin /文件/软件/ mongoDB / bin: $路径< / p >
  1. 激活更改source $HOME/.zshrc

你完蛋了!!

launchctl setenv environmentvariablename environmentvariablevalue

launchctl setenv environmentvariablename `command that will generate value`

使用正确的'并记住重新启动应用程序或终端以使环境变量生效。

可以通过printenv命令查看环境变量。

注意:名为path的环境变量已经由其他人设置了,所以我们在这里根本没有向该路径追加任何内容。

显示所有隐藏文件,如.bash_profile和.zshrc $ ls -a < / p > 从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的app < / p >

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环境变量被修改的顺序:

  1. etc/paths 文本文件中的每一行都被追加
  2. etc/paths.d 目录内的每个文本文件中的每一行都会被追加
  3. 最后,$PATH~/.zshrc中被进一步修改

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

一个方便的命令你可以使用quot;pretty print"您的路径列表为

print -l $path

这将在新行中打印每个路径,以提高可读性。注意:$path类似于$PATH,只是它由一个空格分隔,而不是一个冒号,:

希望这可以进一步澄清这个线程的新手。

sudo nano /etc/paths

现在找到命令路径,我给出了一个颤振路径设置的例子。

/Users/username/development/flutter/bin

现在ctrl +x,然后y。重新打开终端并检查。