MacOS系统的环境变量

一、Mac 系统的环境变量

  • 加载顺序为:
    a. /etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户登录时都会读取该文件
    b. /etc/paths (一般在这个文件中添加系统级环境变量) 全局(公有)配置,bash shell执行时不管是何种方式都会读取此文件
    c. ~/.bash_profile (一般在这个文件中添加用户级环境变量) 每个用户都可使用该文件输入专用于自己使用的shell信息, 当用户登录时该文件仅仅执行一次!
    d. ~/.bash_login
    e. ~/.profile
    f. ~/.bashrc

其中 a 和 b 是系统级别的系统启动就会加载;其余是用户接别的。c,d,e 按照从前往后的顺序读取,如果 c 文件存在,则后面的几个文件就会被忽略不读了,以此类推。 ~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
全局设置,一般不建议修改/etc/profile/etc/bashrc 文件,而去修改/etc/paths文件。如果想要对所有用户都生效则可在/etc/paths文件的最后一行加上自己的 app 路径。优先级也是最高的。
单个用户生效的配置,一般都是修改~/.bash_profile文件,若bash shell是以 login 方式执行时,才会读取此文件。该文件仅仅执行一次!

  • 环境变量PATH的语法
    如果没特殊说明, 设置PATH的语法都为:
export PATH=<PATH 1>:<PATH 2>:<PATH 3>:.....:<PATH N>:$PATH
  • 推荐设置用户个人自己的环境变量,尽量不破坏 Mac 系统全局变量
  • 查看环境变量PATH
echo $PATH

操作系统判断

  • 确定使用的Mac OS X是什么样的Shell
    输入命令
echo $SHELL

如果输出的是:csh或者是tcsh,那么你用的就是C Shell
如果输出的是:bashshzsh,那么你的用的可能就是Bourne Shell的一个变种。
Mac OS X 10.2之前默认的是C Shell
Mac OS X 10.3之后默认的是Bourne Shell

  • 如果是Bourne Shell
    那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个

需要注意的是,如果你在 Mac 上使用的是zsh等 shell 工具,需要再做如下配置,来达到环境变量设置的永久生效。

第一种方法

  • 打开zsh配置文件
vim ~/.zshrc
  • 添加以下内容
if [ -f ~/.bash_profile ]; then
   source ~/.bash_profile
fi
  • 使zsh配置文件生效
source ~/.zshrc

第二种方法

  • ~/.zshrc文件最后增加一行
source ~/.bash_profile

原因解释如下:

bash的配置文件是.bashrc, zsh的配置文件是.zshrc,当你使用zsh作为默认shell工具的时候,它启动时并不会加载bash的这两个配置文件.bashrc.bash_profile,而只会加载自己的配置文件.zshrc,为了让我们的配置文件生效,只能在.zshrc中添加上面的配置。
如果不做上述设置,你就会发现,只有当你每次source ~/.bash_profile后才会生效,下次重新打开zsh窗口,还是不生效。

示例:

# vim ~/.bash_profile
JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
JAVA_HOME=$JAVA_8_HOME
mavenhome=/Applications/Maven/apache-maven-3.9.4
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
PATH=$JAVA_HOME/bin:$mavenhome/bin:$PATH:.
export JAVA_HOME
export CLASSPATH
export PATH

alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk11='export JAVA_HOME=$JAVA_11_HOME'
# source ~/.bash_profile

原文链接:https://www.jianshu.com/p/407f0f9d8203

本文作者:Journey&Flower

本文链接:https://www.cnblogs.com/JourneyOfFlower/p/17765502.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Journey&Flower  阅读(751)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 Not Found REOL
404 Not Found - REOL
00:00 / 00:00
An audio error has occurred.

Fade away

Do over again

Fade away

Utai hajime no hitomojime

Itsumo mayotteru

Douse toritome no nai koto dakedo

Tsutawaranakya motto imi ga nai (Ooh-ooh, oh-oh-oh)

Doushitatte konna ni fukuzatsu nano ni

Kamikudaite yaranakya tsutawaranai

Hora kekkyoku kashi nanka dou datte ii

Boku no ongaku nanka kono yo ni nakutatte ii nda yo

Ii ndarou

Nee sou darou

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, no, no

Me no mae, hirogaru genjitsu sekai ga mata yuganda

Nando risetto shite mo

Boku wa boku igai no dareka ni wa umare kawarenai

Sonna no shitteru yo

Ki ni naru ano ko no uwasabanashi mo

Shinikaru hyouteki wa tsugi no sokuhou

Mahi shichatteru (Tteru) kokkara esukeepu (Keepu)

Tooku tooku made ikeru yo

Antei nante nai (Na-na-na-na)

Fuanteina sekai (Na-na-na-na)

Antei nante nai (Na-na-na-na)

Kitto ashita ni wa wasureru yo

Fade away

Do over again

Fade away

Souda sekai wa dokoka ga itsumo uso kusai

Kireigoto dake ja daijina hitotachi sura mamorenai

Kudaranai, bokura minna dokoka kurutteru mitai

Hontou no koto nanka zenbu kamisama mo shiranai

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai, but

Kamisama mo shiranai (Woah, no, woah, no, woah)

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, oh, oh-oh-oh

Ahh, oh-oh-oh-oh

Woah, oh-oh-oh

Ooh, ooh, ooh, ooh-ooh-ooh-ooh