一、概述

  首先要知道你使用的Mac OS X是什么样的Shell,使用命令

echo $SHELL

  如果输出的是:csh或者是tcsh,那么你用的就是C Shell。

  如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

  Mac OS X 10.2之前默认的是C Shell。

  Mac OS X 10.3之后默认的是Bourne Shell。

  mac 一般使用bash作为默认shell。如果是Bourne Shell,那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。

查看系统支持的shell

cat /etc/shells

  可以根据自己的喜好切换shell

1.1、Mac系统的环境变量

  加载顺序为:

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

  说明:

    • 全局配置【系统级别的,系统启动就会加载】:/etc/profile,   /etc/profile.d/*.sh,   /etc/bashrc
    • 个人配置:~/.bash_profile,    ~/.bashrc

    ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。

    ~/.bashrc没有上述规则,它是bash shell打开的时候载入的。

登陆式SHELLL配置文件加载顺序:/etc/profile > .bash_profile > .bash_login > .profile > .bash_logout.

非登录式SHELL配置文件加载顺序:/etc/bash.bashrc > .bashrc

注: 先加载的配置文件的配置,可能会被后加载的配置所覆盖

1.2、设置PATH的语法:

如果没特殊说明,

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

二、具体说明

2.1、全局设置

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

1)/etc/paths (全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径
Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

2)/etc/profile (建议不修改这个文件 )
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

3)/etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。如,加入mysqlstart、mysql和mysqladmin命令的别名,保证每一个用户都可以使用这3个命令。

4)
  1.创建一个文件:
    sudo touch /etc/paths.d/mysql
  2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):
    sudo vim /etc/paths.d/mysql
  3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)
    /usr/local/mysql/bin
    据说,这样可以自己生成新的文件,不用把变量全都放到 paths 一个文件里,方便管理。

2.2、单个用户设置

1)~/.bash_profile (任意一个文件中添加用户级环境变量)

(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)

若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!默认情况下,他设置一些环境变量

可以设置

  设置终端配色、

  设置命令别名:alias ll='ls -la'

  设置环境变量:export PATH=/opt/local/bin:/opt/local/sbin:$PATH

2)~/.bashrc 同上

如果想立刻生效,则可执行下面的语句:
$ source 相应的文件
一般环境变量更改后,重启后生效。

三、操作【查看、设置】

3.1、mac修改hosts

sudo vi /etc/hosts

可以使用mac版本的switchhost

3.2、path操作

查看path

echo $PATH

编辑

vim /etc/profile

在文档最后,添加:

export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

保存,退出。:wq

想立即生效请运行:

source /etc/profile

四、利用alias切换多版本

vim ~/.bash_profile

# maven
MAVEN_HOME_323=/Users/lihongxu6/developTool/apache-maven-3.2.3/bin
MAVEN_HOME_354=/Users/lihongxu6/developTool/apache-maven-3.5.4/bin
alias mvn323="export PATH=$MAVEN_HOME_323:$PATH"
alias mvn354="export PATH=$MAVEN_HOME_354:$PATH"

使用时

source ~/.bash_profile

mvn323

或者mvn354

cv

011-MAC 设置环境变量path的几种方法的更多相关文章

  1. MAC 设置环境变量path的几种方法

    mac 一般使用bash作为默认shell Mac系统的环境变量,加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.prof ...

  2. 转载:(Mac)在bash和zsh配置环境变量path的几种方法

    参考文献 老习惯,列出本文参考或引用或转载的文档和博客,致以崇高的敬意,感兴趣的可以去看看 1.http://postgresapp.com/ 2.http://postgresapp.com/doc ...

  3. MAC 设置环境变量path的常用方法

    单个用户设置 1)~/.bash_profile (任意一个文件中添加用户级环境变量) (注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile) 若bash shell是 ...

  4. Mac配置环境变量path

    查看当前配置的path有哪些: 1. echo $PATH  当前所有的 2. cat /etc/paths  这个文件是操作系统自带的 mac系统环境变量的加载顺序(优先级): /etc/profi ...

  5. MAC设置环境变量

    1. Mac 启动加载文件位置(可设置环境变量) ------------------------------------------------------- (1)首先要知道你使用的Mac OS ...

  6. Mac 设置环境变量

    前天配置好了SVN,这里赞下Versions,确实好用! CO了淘宝的TAE,跑startServer.sh时报错: JAVA_HOME does not point at a JDK or JRE. ...

  7. Linux 环境变量配置的 6 种方法,建议收藏

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量 ...

  8. 在 Ubuntu 系统中有三种设置环境变量 PATH 的方法。(ZT) repost

    来源地址: http://blog.csdn.net/jernymy/article/details/6547671 第一种适用于为单一用户设置PATH.第二种是为全局设置 PATH.第三种方法适合于 ...

  9. CentOS下将php和mysql命令加入到环境变量中的几种方法

    Linux CentOS配置LAPM环境时,为了方便,将php和mysql命令加到系统环境命令,下面我们记录几种在linux下将php和mysql加入到环境变量中的方法. 如果在没有添加到环境变量之前 ...

随机推荐

  1. Gluon Datasets and DataLoader

    mxnet.recordio MXRecordIO Reads/writes RecordIO data format, supporting sequential read and write. r ...

  2. C语言 · FBI树

    算法训练 FBI树   时间限制:1.0s   内存限制:256.0MB        锦囊1 二叉树. 问题描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I ...

  3. js 可拖动div 调整大小

    dragBorder: function (parent, right, bottom, bottomRight) { var isDownRight = false; var isDownBotto ...

  4. Java窗体居中显示的2种方法

    第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreen ...

  5. Kubernetes集群部署之五node节点部署

    Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程.Kubelet :负责pod对应的容器的创建.启停等任务 ...

  6. thinkphp5 composer

    前提:已安装composer 1.安装包 https://packagist.org/?query=thinkphp ,tp的各种安装包 2.安装 //安装命令, composer create-pr ...

  7. Python类和实例方法和属性的动态绑定

    python中实例创建后可以给实例绑定任何属性和方法 class Student(object): pass 给实例绑定一个属性: s=Student() s.name='Michel' print ...

  8. 如何优雅的选择字体(font-family)

    大家都知道,在不同操作系统.不同游览器里面默认显示的字体是不一样的,并且相同字体在不同操作系统里面渲染的效果也不尽相同,那么如何设置字体显示效果会比较好呢?下面我们逐步的分析一下: 一.首先我们看看各 ...

  9. SpringBoot入坑-请求参数传递

    前一篇我们探讨了关于springboot的配置文件和Controller的使用,本篇我们来一起探讨一下关于springboot如何传递参数的知识. 参数传递我们最常见的就是在url后通过?/& ...

  10. STM32终端优先级,看过很多感觉这个写的直白易懂

    转自野火<零死角玩转STM32> 一.抢占优先级和响应优先级 STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号 越小,表明它的优先级别越高.    抢占,是 ...