精品网站要建设需要多少钱,网站建设手机,管理咨询培训,dede小说网站模板文章目录macOS 下环境变量的配置文件解决环境变量在 zsh shell 无效的问题查看 macOS 全部环境变量设置系统环境变量设置用户环境变量macOS 下环境变量的配置文件
a. /etc/paths
b. /etc/profile
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc /etc/…
文章目录macOS 下环境变量的配置文件解决环境变量在 zsh shell 无效的问题查看 macOS 全部环境变量设置系统环境变量设置用户环境变量macOS 下环境变量的配置文件
a. /etc/paths
b. /etc/profile
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc /etc/profile 和 /etc/paths 是系统级别的配置文件后面几个是用户级的配置文件。
文件加载顺序 系统启动时会按上面罗列的配置文件从上到下的顺序加载。但是如果 ~/.bash_profile 文件存在那么 ~/.bash_login、~/.profile、~/.bashrc 会被忽略如果不存在 ~/.bash_profile 文件才会按顺序读取后面的文件。另外~/.bashrc 文件又比较特殊这个文件是在 bash shell 打开时才加载的并不是系统启动后就加载的。
解决环境变量在 zsh shell 无效的问题
以上的配置文件在 bash shell 环境下才有效在 zsh shell 环境下无效。如果希望在 zsh shell 下可以使用上述配置文件中的环境变量可以在 ~/.zshenv 或者 ~/.zshrc 文件中添加下面的命令语句
source /etc/profile
source ~/.bash_profile打开 zsh shell 时会顺序加载 ~/.zshenv、~/.zshrc 文件添加上面两条命令语句则表示加载 ~/.zshenv 或 ~/.zshrc 时会去调用外部脚本文件 /etc/profile 和 ~/.bash_profiel且被调用的脚本运行结束后所拥有的环境变量和声明变量会被当前 zsh shell 保留类似将调用脚本的内容复制过来直接执行执行完毕后原主 shell 继续运行。所以通过这样的方式就可以使用在 bash shell 环境下配置的环境变量了。
当然你也可以直接将相关的环境变量配置在 ~/.zshrc 文件中但是显然是多余而且繁琐了每次你要新增一个环境变量的时候你都要在 bash shell 有关的配置文件中添加又要在 zsh shell 有关的配置文件中添加显然是不合适的。而如果每次加载 ~/.zshrc 文件时会自动调用 bash shell 有关的配置文件那么所有的环境变量只要在 bash shell 有关的配置文件中添加就可以了。
查看 macOS 全部环境变量
输入命令 export查看全部的环境变量
[~]$ export
AUTOJUMP_ERROR_PATH/Users/liaowenxiong/Library/autojump/errors.log
AUTOJUMP_SOURCED1
HOME/Users/liaowenxiong
HOMEBREW_BOTTLE_DOMAINhttps://mirrors.ustc.edu.cn/homebrew-bottles
JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
LANGzh_CN.UTF-8
LESS-R
LOGNAMEliaowenxiong
LSCOLORSGxfxcxdxbxegedabagacad
NEXUS_HOME/Users/liaowenxiong/Applications/nexus-3.20.1-01-mac/nexus-latest
OLDPWD/Users/liaowenxiong
...设置系统环境变量
系统环境变量在 /etc/profile 文件中配置编辑该文件需要 root 权限
sudo vim /etc/profile新增环境变量 JAVA_HOME、CLASS_PATH内容如下
JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Homeexport JAVA_HOMECLASS_PATH$JAVA_HOME/libPATH.:.$PATH:$JAVA_HOME/bin上面的脚本内容解读 声明定义了一个环境变量 JAVA_HOME变量的值是 /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home并且将该变量声明成可以输出即可以复制给子进程。
声明定义了环境变量 CLASS_PATH变量的值是 $JAVA_HOME/lib$JAVA_HOME 变量取值 /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home所以最终 CLASS_PATH 变量的取值是 /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib。
声明定义了环境变量 PATH变量的值是 .:.$PATH:$JAVA_HOME/bin$PATH 的值来自于配置文件 /etc/paths 中说明创建一个新进程时首先加载的文件应该是 /etc/paths最终变量 PATH 的值是 .:./usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin
要想马上生效输入下面的命令
source /etc/profile查看环境变量 JAVA_HOME 的值
echo $JAVA_HOME设置用户环境变量
用户环境变量可以在 ~/.bash_profile 文件内配置。
你可以在命令终端使用 vim 编辑文件
vim ~/.bash_profile你也可以使用 macOS 内置的编辑器打开文件在命令终端输入
open -e ~/.bash_profile如果不存在 ~/.bash_profile 文件这需要自己创建该文件在终端输入
touch ~/.bash_profile文件创建好之后再打开文件编辑内容。
配置内容可以按这样的格式写
JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
PATH$JAVA_HOME/bin:$PATH:.
CLASSPATH$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH也可以是这样的格式写
export JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
export PATH$JAVA_HOME/bin:$PATH
export ANDROID_HOME/Library/sdk
export PATH$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools/
export PATH$PATH:/usr/local/bin:/usr/local/sbin:${PATH}最后在命令终端输入 source ~/.bash_profile 使配置立即生效这个时候我们就可以使用命令echo $PATH或者 echo $JAVA_HOME 查看变量的内容。