Mac下配置环境变量重启后不生效解决方法

PATH语法

如果没特殊说明,设置PATH的语法都为:

1
2
#中间用冒号隔开
export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

配置

系统级别

下面的几个文件设置是全局的,修改时需要root权限

1)/etc/paths (全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径
Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

2)/etc/profile (建议不修改这个文件 )
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

3)/etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

4)创建文件
1.创建一个文件:

1
sudo touch /etc/paths.d/mysql

2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):

1
sudo vim /etc/paths.d/mysql

3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)

1
/usr/local/mysql/bin

据说,这样可以自己生成新的文件,不用把变量全都放到 paths 一个文件里,方便管理

用户级别

  • 1)~/.bash_profile (任意一个文件中添加用户级环境变量)
    (注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile
    bash shell是以login方式执行时,才会读取此文件。

    该文件仅仅执行一次!默认情况下,他设置一些环境变量
    设置命令别名

    1
    alias ll=`ls -la`

    设置环境变量:

    1
    export PATH=/opt/local/bin:/opt/local/sbin:$PATH
  • 2)~/.bashrc 同上

    如果想立刻生效,则可执行下面的语句:

    1
    $ source 相应的文件

    一般环境变量更改后,重启后生效。

解决 Mac 下配置环境变量在 ZSH 中无效的问题

在配置 gradle 的时候, 发现在 /etc/profiles 中设置了环境变量后, 还是不能在 zsh 中使用.

但在 Terminal 中可以正常使用. 后来发现是因为没有在 .zshrc 中配置.

在终端中输入:

1
open ~/.zshrc

以此来查看 .zshrc 文件, 找到里面的 # User configuration 部分. 可以看到当前 zsh 支持的所有本地已配置环境变量.

1
export PATH="XXX"

里面追加一条想要配置的环境变量路径.

重启 item2 即可。