环境搭建 | Mac 环境变量配置

环境搭建 | Mac 环境变量配置Mac环境变量配置mac一般使用bash作为默认shell,如果安装了ohmysh,则默认使用zshshell。Mac系统环境变量的加载顺序:/etc/profile/etc/paths~/.bash_profile~/.bash_login~/.profile~/.bashrc/etc/profile和/etc/paths是系统级别的,系统启动后就会…

大家好,又见面了,我是你们的朋友全栈君。

Mac环境变量配置

mac一般使用bash作为默认shell,如果安装了oh my sh,则默认使用zshshell。

Mac系统环境变量的加载顺序:

/etc/profile
/etc/paths
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc

  • /etc/profile/etc/paths是系统级别的,系统启动后就会加载。后面几个是当前用户级的环境变量。
  • 如果~/.bash_profile存在,后面几个文件就会忽略不读,不存在时,才会以此类推读取后面的文件。
  • ~/.bashrc没有上述规则,他始终加载,他是在bash shell打开的时候载入的。

设置Path的语法

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

全局设置

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

  • /etc/paths (全局建议修改这个文件 )
    编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径.

/etc/paths 文件:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
  • /etc/profile (建议不修改这个文件 )
    全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
  • /etc/bashrc (一般在这个文件中添加系统级环境变量)
    全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

单个用户设置

  • ~/.bash_profile (添加用户级环境变量)
    (注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)
    bash shell是以login方式执行时,才会读取此文件,该文件仅仅执行一次,默认情况下,他设置一些环境变量。
    设置命令别名
alias ll=’ls -la’

设置环境变量:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

比如设置ANDROID_HOME到PATH:

export ANDROID_HOME=/Users/shaoc/Library/Android/sdk

export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
  • ~/.bashrc 同上

一般重启shell设置就会生效,如果想立刻生效,则可执行下面的语句:

$ source 相应的文件

zsh中配置环境变量

在安装了oh my zsh后, .bash_profile 文件中的环境变量就无法起到作用,因为终端默认启动的是zsh,而不是bash shell,所以无法加载。

解决方法1:

~/.zshrc配置文件中,增加对.bash_profile的引用:

source ~/.bash_profile

.bash_profile文件示例:

export ANDROID_HOME=/Users/pengdan/software/sdk
export NDK=/Users/pengdan/software/android-ndk-r10d
export GRADLE_HOME=/Users/pengdan/software/gradle-2.4
export SUBLIME=/Users/pengdan/home/subin
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$GRADLE_HOME/bin:$PATH
export PATH=$PATH:$SUBLIME:/usr/local/mysql/bin
export PATH=$PATH:/Users/pengdan/software/apache-tomcat-7.0.70/bin

解决方法2:
可以使用zsh的方法进行配置:
(1)可以直接在~/.zshrc中添加path或者环境变量
(2)在目录~/oh-my-zsh/custom文件夹下的任何.zsh文件中的环境变量都将会加载。

.zshrc:

# Path to your oh-my-zsh installation.
export ZSH=/Users/shaoc/.oh-my-zsh
source $ZSH/oh-my-zsh.sh

alias zshconfig="vim ~/.zshrc"
source ~/.bash_profile

~/oh-my-zsh/custom/my.zsh:

alias zshcfg="vscode ~/.oh-my-zsh/custom/my_custom.zsh"
alias vscode=\''/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code'\'
export M2_HOME=/Applications/IntelliJ\ IDEA.app/Contents/plugins/maven/lib/maven3
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
export PATH=$PATH:$M2_HOME/bin:$JAVA_HOME/bin
export MAVEN_OPTS="-Xmx512m"
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150178.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue项目刷新当前页面的三种方法[通俗易懂]

    vue项目刷新当前页面的三种方法[通俗易懂]本文介绍了vue项目刷新当前页面的三种方法,本文图文并茂给大家介绍的非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下。 想必大家在刨坑vue的时候也遇到过下面情形:比如在删除或者增加一条记录的时候希望当前页面可以重新刷新或者如下面这种:如果希望点击确定的时候,Dialog对话框关闭的时候,当前http://localhost:9530/#/supplier/supplierAll页面可以重新刷新下那么表格的数据可以重新加载,Dialog对话框设置的数据可以在确定后刷新出现在页面上

    2022年10月17日
    3
  • jwttoken失效机制_token怎么获取

    jwttoken失效机制_token怎么获取

    2025年11月7日
    4
  • python生成13位时间戳_python精确到毫秒时间戳

    python生成13位时间戳_python精确到毫秒时间戳Unix时间戳根据精度的不同,有10位(秒级),13位(毫秒级),16位(微妙级)和19位(纳秒级)。平时我们在linux命令行下,使用date+%s返回的是一个10位的unix时间,而在常用的http的响应头里,我们经常会发现有13位的unix时间戳。在python下可以比较容易的获取10和13位的时间戳并转换成常见的时间格式。一、10时间戳的使用和转换>>>…

    2022年10月2日
    2
  • 图的连通性问题专题整理

    图的连通性问题专题整理

    2021年12月8日
    53
  • Windows 10上如何安装ubuntu虚拟机「建议收藏」

    因为开发的需要,很多时候时候我们需要安装虚拟机,然后在虚拟机上面安装我们需要的操作系统。最近也是因为学习的需要,就用自己的Windows10安装了ubuntu虚拟机,在虚拟机上面安装需要的操作系统,下面是具体的操作过程。一下载准备文件(1)先去下载VirtualBox,这里我用的版本是VirtualBox-6.1.4-136177-Win.exe,官网地址:https://www.vi…

    2022年4月17日
    358
  • android ListView 嵌套 ListView

    android ListView 嵌套 ListView实现的效果是这个样子的看上去效果还是不错,不过现在有个刷新问题一直没能解决,刷新的时候里面的adapter进行刷新的时候总是会让里面的listview消失掉,应该是父listview先刷新完后,子listview还未刷新完成,导致测量的高度不对,就会消失,像当前组已关闭这种,现在这个问题还没有想到办法解决的,试过比较多的方法,添加接口让子listview刷新完成后再去更新父…

    2022年7月16日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号