环境搭建 | 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)
上一篇 2022年6月17日 下午11:16
下一篇 2022年6月17日 下午11:16


相关推荐

  • Docker快速入门总结笔记

    Docker快速入门总结笔记Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。…

    2022年6月29日
    31
  • 三次握手,四次挥手,为什么是三次握手四次挥手

    三次握手,四次挥手,为什么是三次握手四次挥手三次握手 四次挥手 为什么是三次握手四次挥手四次挥手 TCP 的连接的拆除需要发送四个包 因此称为四次挥手 客户端或服务器均可主动发起挥手动作 由于 TCP 连接时全双工的 因此每个方向都必须单独进行关闭 这个原则是当一方完成他的数据发送任务后就能发送一个 FIN 来终止这个方向的连接 收到一个 FIN 只意味着这一方向上没有数据流动 一个 TCP 连接在收到一个 FIN 后仍能发送数据 首先进行关闭的一方将执行主动关闭 而另一方执行被动关闭 这是因为服务端的 LISTEN 状态下的 socket 当收到

    2026年3月16日
    2
  • 最佳的idea注释模板

    最佳的idea注释模板1 class 和 interface 注释 主键注释行代码 Description TODO Author USER Date DATE TIME Version 1 0 创建新 class 后会自动生成注释 如果碰到以前的 class 没有注释 从下面模板中添加快捷键方式 2 快捷键给 class 生成注释 这里的 mygroup 是我新建的 templategrou group 里面是同样从这个 新建的两个模板 分别是

    2025年11月14日
    11
  • 商品搜索引擎资料整理

    商品搜索引擎资料整理

    2020年11月12日
    184
  • 联想服务器怎么拆硬盘,联想ThinkStation P900工作站高清拆解[通俗易懂]

    联想服务器怎么拆硬盘,联想ThinkStation P900工作站高清拆解[通俗易懂]【IT168厂商动态】联想不久前推出了全新一代ThinkStationP系列工作站家族,颠覆以往命名,启用以“P”开头的全新命名规则,包括从入门级到旗舰级应用的ThinkStationP300、ThinkStationP500、ThinkStationP700和ThinkStationP900四款产品,而今天我们就对号称“史上最强工作站”的ThinkStationP900进行了拆解。联…

    2022年5月23日
    74
  • Unity 从UI中拖拽对象放置并拖动[通俗易懂]

    Unity 从UI中拖拽对象放置并拖动[通俗易懂]需求:点击UI,在场景中生成3D对象,对象跟随鼠标移动,放置后可再次拖拽对象,改变其位置。做了一个小Demo,如下图所示:实现大致思路:射线碰撞检测对象空间坐标变换(世界坐标-&amp;gt;屏幕坐标、屏幕坐标-&amp;gt;世界坐标)首先为要生成3D对象的UI添加一个鼠标监听事件,脚本如下:SelectImage.csusingSystem.Collections;using…

    2022年6月23日
    77

发表回复

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

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