macOS | 系统变量的查询和设置

本文总结如何在 macOS 上查看当前计算机的系统变量和对其进行设置。

使用环境 Darwin Kernel Version 20.5.0mac OS 11.4

Updated: 2022 / 10 / 18



配置文件

参考 1

级别文件
系统级/etc/paths
/etc/profile
用户级~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc

系统启动时会按上面罗列的配置文件从上到下的顺序加载。
但是,如果 ~/.bash_profile 文件存在,那么 ~/.bash_login~/.profile~/.bashrc 会被忽略。如果不存在 ~/.bash_profile 文件,才会按顺序读取后面的文件。

另外,~/.bashrc 文件又比较特殊,这个文件是在 bash shell 打开时才加载的,并不是系统启动后就加载的。


查看

export

% export | grep 'PATH'
GEM_PATH=/Users/X/.rvm/gems/ruby-2.7.5:/Users/X/.rvm/gems/ruby-2.7.5@global
INFOPATH=/opt/homebrew/share/info:
MANPATH=/opt/homebrew/share/man::
PATH=/Users/X/.rvm/gems/ruby-2.7.5/bin:/Users/X/.rvm/gems/ruby-2.7.5@global/bin:/Users/X/.rvm/rubies/ruby-2.7.5/bin:/Applications/miniconda3/bin:/Applications/miniforge3/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/X/.rvm/bin

% export
GEM_HOME=/Users/X/.rvm/gems/ruby-2.7.5
GEM_PATH=/Users/X/.rvm/gems/ruby-2.7.5:/Users/X/.rvm/gems/ruby-2.7.5@global
HOME=/Users/X
HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles
HOMEBREW_CELLAR=/opt/homebrew/Cellar
HOMEBREW_PREFIX=/opt/homebrew
HOMEBREW_REPOSITORY=/opt/homebrew
INFOPATH=/opt/homebrew/share/info:
IRBRC=/Users/X/.rvm/rubies/ruby-2.7.5/.irbrc
LC_CTYPE=UTF-8
LOGNAME=X
MANPATH=/opt/homebrew/share/man::
MY_RUBY_HOME=/Users/X/.rvm/rubies/ruby-2.7.5
NVM_DIR=/Users/X/.nvm
OLDPWD=/Users/X
PATH=/Users/X/.rvm/gems/ruby-2.7.5/bin:/Users/X/.rvm/gems/ruby-2.7.5@global/bin:/Users/X/.rvm/rubies/ruby-2.7.5/bin:/Applications/miniconda3/bin:/Applications/miniforge3/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/X/.rvm/bin
PWD=/Users/X
RUBY_VERSION=ruby-2.7.5
SHELL=/bin/zsh
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.DXqYLXA8CE/Listeners
TERM=xterm-256color
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=440
TERM_SESSION_ID=814E1B3B-F544-460A-84E4-21AE1ECF2B9F
TMPDIR=/var/folders/v3/_yfx_m252q72y7mr8gl65mmm0000gn/T/
USER=X
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
__CFBundleIdentifier=com.apple.Terminal
rvm_alias_expanded=''
rvm_bin_flag=''
rvm_bin_path=/Users/X/.rvm/bin
rvm_delete_flag=''
rvm_docs_type=''
rvm_file_name=''
rvm_gemstone_package_file=''
rvm_gemstone_url=''
rvm_hook=''
rvm_niceness=''
rvm_nightly_flag=''
rvm_only_path_flag=''
rvm_path=/Users/X/.rvm
rvm_prefix=/Users/X
rvm_pretty_print_flag=''
rvm_proxy=''
rvm_quiet_flag=''
rvm_ruby_alias=''
rvm_ruby_bits=''
rvm_ruby_configure=''
rvm_ruby_file=''
rvm_ruby_global_gems_path=''
rvm_ruby_make=''
rvm_ruby_make_install=''
rvm_ruby_mode=''
rvm_ruby_string=''
rvm_ruby_url=''
rvm_script_name=''
rvm_sdk=''
rvm_silent_flag=''
rvm_sticky_flag=''
rvm_system_flag=''
rvm_use_flag=''
rvm_user_flag=''
rvm_version='1.29.12-next (master)'

echo

% echo $PATH
/Users/X/.rvm/gems/ruby-2.7.5/bin:/Users/X/.rvm/gems/ruby-2.7.5@global/bin:/Users/X/.rvm/rubies/ruby-2.7.5/bin:/Applications/miniconda3/bin:/Applications/miniforge3/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/X/.rvm/bin

设置

参考 2


系统变量

系统环境变量在 /etc/profile 文件中配置,编辑该文件需要 root 权限:

sudo vim /etc/profile

新增环境变量 JAVA_HOMECLASS_PATH,内容如下:

JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home"

export JAVA_HOME

CLASS_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 查看变量的内容。


参考链接


  1. macOS下配置环境变量/查看环境变量 ↩︎

  2. Mac下怎么将/usr/local/mysql/bin/添加到环境变量 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值