macOS下配置环境变量/查看环境变量

文章目录

  • 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_SOURCED=1
HOME=/Users/liaowenxiong
HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
LANG=zh_CN.UTF-8
LESS=-R
LOGNAME=liaowenxiong
LSCOLORS=Gxfxcxdxbxegedabagacad
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/Home"export JAVA_HOMECLASS_PATH="$JAVA_HOME/lib"PATH=".:.$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 查看变量的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jpa一级缓存和二级缓存_了解一级JPA缓存

jpa一级缓存和二级缓存我敢打赌,每个Java开发人员至少都听说过L1(又名EntityManager或Session)缓存。 但是您的理解水平足够好吗? 如果不确定,请考虑阅读这篇文章。 首先,我们需要知道持久性上下文是什么。…

造完家怎么拆东西_地弹簧玻璃门怎么拆?地弹簧玻璃门拆除注意事项有哪些?...

现如今,我们总可以看到玻璃门的身影,在我们的生活中,玻璃门可以说是随处可见。而对于安装玻璃门,大家了解多少呢?为了更好认识玻璃门,今天就带大家一起走进玻璃门的安装中,告诉大家怎么样拆卸和组装玻璃门…

dubbo provider异步_Dubbo学习(六) Dubbo面试问题

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务&#xff0c…

测试网页兼容软件,WEB测试兼容性

软件兼容性测试在目前软件测试领域占有很只要的地位,无论B/S架构还是C/S架构的软件都需要进行兼容性测试,充分保证产品的平台无关性,使用户群充分的感受到软件的友好。139WDA属于WEB产品,以下就来总结下WEB测试之兼容性测试。WEB兼…

Oracle/MySQL数据库的表间关联查询_多表关联查询的SQL语句详解

文章目录内连接 inner join示例外连接 outer joinleft outer join 左外连接示例right outer join 右外连接示例full outer join 全外连接示例外连接总结内连接 inner join 内连接又称为等值连接,语法结构: 表1 inner join 表2 on 条件 -- inner可以省略…

tf 矩阵行和列交换_TF-搞不懂的TF矩阵加法

看谷歌的demo mnist,卷积后加偏执量的代码h_conv1 tf.nn.relu(conv2d(x_image, W_conv1) b_conv1)h_pool1 max_pool_2x2(h_conv1)其中的x_image的维数是[-1, 28, 28, 1],W_conv1的维数是[5, 5, 1, 32], b的维数是[32]conv2d对x_image和W_conv1进行卷积…

kafka数据到flume_大数据摄取:Flume,Kafka和NiFi

kafka数据到flume初赛 在构建大数据管道时,我们需要考虑如何吸收出现在通常是Hadoop生态系统大门口的数据量,多样性和速度。 在决定采用哪种工具来满足我们的要求时,诸如可伸缩性,可靠性,适应性,开发时间成…

python如何打开json文件_如何使用python打开json文件?

工程_请求数据.json公司名称:{ "appKey": "9c9fa7201e90d3d96718bc3f36ce4cfe1781f2e82f4e5792996623b3b474fee2c77699eb5354f2136063e1ff19c378f0f6dd984471a38ca5c393801bffb062d6", "appId": "NMDPTRIAL_AutomotiveTesting_N…

手机热点总是正在连接服务器,手机热点用不了?可以尝试这个方法。

原标题:手机热点用不了?可以尝试这个方法。下班路上,上司突然打来“夺命连环call”,早上的方案需要赶紧改一下。无奈,只能拿出笔记本在地铁上临时办公,关键时候连接手机热点,却发现还是没网络。…

一年月份大小月口诀_大月小月口诀 什么意思 有多少天

大家都知道每年都有分为12个月,月份又被分为大月小月和平月,每种月份的天数都不一样,有许多人记不住哪些是大月,哪些是小月。其实大月小月是有口诀的,接下去就让老黄历带大家详细了解一下大小月的口诀以及天数吧。问&a…

Sublime Text for Mac 最新版安装后,无法搜索到Install Package的解决办法

打开命令面板搜索不到Install Package,说明没有安装Package Control。 如何安装Package Control? 首先打开Package Control中文镜像,打开后如下图所示: 点击「Install Now」后,如下图所示: 我们看到有两…

参数化测试 junit_使用JUnit 5进行更清洁的参数化测试

参数化测试 junit参数化单元测试的总体思路是对不同的数据运行相同的测试方法。 在JUnit 4中创建参数化测试远非完美。 现有体系结构存在许多问题:将参数定义为类字段,并需要使用构造函数来创建它们,参数化和非参数化测试不能混合在一个测试类…

python人工智能方向第三方库_Python进阶-第三方库管理和虚拟环境

本文为《爬着学Python》系列第十三篇文章。Python能在这几年火起来,靠的不是网上一大片的爬虫和服务器后端知识的应用(本专题就是这样的,这么说真的好吗?不过我们总得认清事实是吧。),靠的是Python搭上了大数据和人工智能的风。而…

tomcat应用服务器有哪些,手写一个Tomcat应用服务器

mytomcat项目简介自己实现的简易的TomcatTomca实现说明Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,我们可以通过实现它来深刻了;了解它的实现原理。考虑自己…

不需要软著的安卓应用市场_哪些安卓应用市场上架应用比较简单啊,不需要软著啊?公司开发的 APP 着急上架...

ENNRIaaa:我看华为、360 、应用宝都需要软著kerb15:酷安?yuluo01:推广到位,网站下载都可以一个很冷门的领域,佛教 Appavalon8:我姐夫,佛教文化爱好者,研究佛教相关资料几…

SublimeText如何让代码的关键字高亮显示

如何设置不同语法的关键字高亮显示 假设你编写java代码,希望代码关键字高亮显示,你可以在菜单栏中选择「查看」-「语法」-「java」,勾选java即可,如下图: 当然,你也可以在页面右下角点击打开语法类型列表…

stringbuffer_StringBuffer的存在的含义

stringbuffer当我处理旧代码并在StringBuffer实例上运行时,通常将它们替换为StringBuilder实例。 尽管可以从此更改中获得性能优势,但我经常在我所知不会对性能产生明显影响的地方进行更改。 我认为,除了可能带来性能收益外,还应出…

python find函数实现原理_非常干货:Python 探针实现原理

△点击上方“Python猫”关注 ,回复“1”领取电子书剧照 | 《棋魂》原文:https://segmentfault.com/a/1190000004889212大家好,我是猫哥。关于 Python 中探针的运用,我之前写过一篇《由浅入深:Python 中如何实现自动导入…

服务器系统js文件报错,js服务器文件

js服务器文件 内容精选换一换登录Windows操作系统的弹性云服务器时,需使用密码方式登录。因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员密码(Administrator帐户或Cloudbase-init设置的帐…

云盘存储 教学反思_wps轻松办公优秀教学设计范文

wps轻松办公优秀教学设计范文[教学目的与要求]1.学会登录“WPS轻办公”2.学会保存、打开“云文档”3.学会把文档以图片的方式分享到“微博”4.通过观察“WPS轻办公”,了解“WPS轻办公”,初步会用“我的圈子”功能。[教…