011-MAC 设置环境变量path的几种方法

一、概述

  首先要知道你使用的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。

  从 macOS Catalina 版开始,zsh (Z shell) 是所有新建用户帐户的默认 Shell。bash 是 macOS Mojave 及更低版本中的默认 Shell。

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

查看系统支持的shell

cat /etc/shells

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

1.1、Mac系统的环境变量

  加载顺序为:

    系统级别:a、/etc/profile ;b、/etc/paths ;

    用户级别:c、~/.bash_profile ;d、~/.bash_login ;e、~/.profile ;f、~/.bashrc

  说明:

    • 全局配置【系统级别的,系统启动就会加载】:/etc/profile,   /etc/profile.d/*.sh,   /etc/bashrc 
    • 个人配置:~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc 是当前用户级的环境变量。

      c,d,e按照从前往后的顺序读取,如果c文件存在,则后面的几个文件就会被忽略不读了,以此类推。

      ~/.bashrc没有上述规则,它是bash shell打开的时候载入的。这里建议在c中添加环境变量

登陆式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),在Catalina中mac 下采用Zsh代替了bash,Zsh加载的配置文件是~/.zshrc,所以.bash_profile没有生效,

  如果要兼容:方法一、把.bash_profile中的配置,挪到.zshrc文件中。方法二、在.zshrc文件中再加载一次.bash_profile

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

可以设置

  设置终端配色、

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

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

2)~/.bashrc 同上

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

zsh

zsh下的用户环境配置文件包括.zlogin、.zprofile、.zshrc、.zshenv和.zlogout

  • .zshenv中存放的环境变量配置项在任何场景下都能被读取,这里通常把$PATH等变量写在这里,这样无论是在交互shell,或者运行程序都会读取此文件
  • .zprofile 的作用与 .bash_profile 相同,并且在登录时运行(包括通过 SSH 运行);是给ksh用户的一个.zlogin的替代品,所以如果使用了.zlogin就不必再关心此文件
  • .zshrc 的作用与 .bashrc 相同,并针对每个新的“终端”会话运行,主要用在交互shell,对终端交互shell有用
  • zlogin在login shell的时候读取,所以比如X系统启动的时候会读取此文件,所以不会再运行中重复读取
  • zlogout退出终端的时候读取,用于做一些清理工作

如果您正在使用 .profile(一个兼容 POSIX 的描述文件),则您可以将以下命令添加到 .zprofile,以便 zsh 自动读取这个描述文件的设置

加载顺序:.zshenv → [.zprofile if login] → [.zshrc if interactive] → [.zlogin if login] → [.zlogout sometimes].

常用:.zprofile、.zshrc

三、操作【查看、设置】 

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

 

posted @ 2019-03-29 21:30  bjlhx15  阅读(1919)  评论(0编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭