• Mac 中环境变量的配置


    1. 环境变量介绍

    1.1 环境变量的作用

    环境变量和全局的变量有什么用呢?

    1.1.1 使用场景1

    我们先来看这样的一个使用场景1,我们有一个程序Java,需要读取某个文件(/data/file.txt)。 
    那么我们在运行的时候是不是需要做如下的步骤:

    1. cd 到Java的目录下;
    2. 执行Java命令;

      但是,当我们需要同时使用多个工具的时候,比如又有java、maven、git等等,而且是多台机器的时候,我们通常需要很多繁琐的cd操作。而配置环境变量 就可以使我们可以快速的运行这些脚本了。

    1.1.1 使用场景2

    如果我们又有JDK1.7,又有JDK1.8,而且需要经常的切换,那么怎么办? 
    可以配置局部变量比如:

    export JDK1.7=/usr/apps/jdk1.7
    export JDK1.8=/usr/apps/jdk1.8
    export PATH=$JDK1.7/bin

    这样,在改变的时候,就不需要全部的改变,而改变部分就可以了。

    1.2 环境变量的作用

    ok,有了上面的介绍,我们大概就可以知道环境变量到底有什么用处了。用处就是可以在操作系统的各个目录下,都能访问到需要的工具目录内的内容,和Windows的桌面的思想十分相似,而且相当于在系统的各处都具有这个桌面的快捷方式。


    2. Mac环境变量配置

    在讲解Mac环境变量配置之前,大家可以打开dos框,输入 
    “echo $PATH” 查看当前的path下有什么东西。 
    个人的结果是这样的:

    localhost:/ Sean$ echo $PATH
    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Sean/Software/hadoop/hadoop-2.2.0/bin:/Users/Sean/Software/Scala/scala-2.11.8/bin:/Users/Sean/Software/Spark/spark-2.0.2-bin-hadoop2.7/bin

    可以看出,我的目录下有”/usr/local/bin、/usr/bin、/Users/Sean/Software/hadoop/hadoop-2.2.0/bin”都被作为环境变量进行加载了。 
    那么下面我就讲解下,这个东西到底应当如何配置。

    2.1 环境变量文件的优先级

    其配置文件的优先级如下所示:

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

    2.2 Mac配置环境变量的地方

    1)/etc/paths (全局建议修改这个文件 )

    编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径

    Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

    2)/etc/profile (建议不修改这个文件 )

    全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

    3)/etc/bashrc (一般在这个文件中添加系统级环境变量)

    全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

    4)~/.bash_profile (一般在这个文件中添加用户级环境变量)

    每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

    5)

    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.3 常见操作命令

    2.3.1 操作系统判断

    1. 首先要知道你使用的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。
    2. 如果是Bourne Shell。 
      那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。

    2.3.2 修改host文件

    sudo vi /etc/hosts

    2.3.3 linux下查看和添加PATH环境变量

    PATH的格式为: 
    PATH=$PATH::::——: ,中间用冒号隔开。

    2.3.4 添加PATH环境变量:

    [root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH

    2.3.5 查看PATH环境变量:

    [root@localhost u-boot-sh4]#echo $PATH
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    2.3.6 操作示例

    • 通过编辑 启动文件 来改PATH。
    # vim /etc/profile
    • 在文档最后,添加:
    export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

    保存,退出。

    • 想立即生效请运行:
    #source /etc/profile

    不报错则成功。

    如果想立刻生效,则可执行下面的语句:$ source .bash_profile(这是文件名)。

    环境变量更改后,在用户下次登陆时生效。


    3. 软连接

    另外有很多小伙伴可能发现了,在mac上不设置环境变量有的时候也可以直接就访问到了某些文件。这个是为什么呢?答案是用了软连接。

    3.1 查看加载文件

    可以使用cat命令查看paths文件

    localhost:/ Sean$ cat etc/paths
    /usr/local/bin
    /usr/bin
    /bin
    /usr/sbin
    /sbin

    答案就是mac会自动加载paths目录,自动加载这些文件夹下的文件.所以使用软连接,在这些文件夹下建立软连接,可能达到相同的效果。

    3.2 软连接查看

    ls -li
    406876 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jar -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jar
    406877 lrwxr-xr-x   1 root   wheel        79  7  9  2016 jarsigner -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jarsigner
    406878 lrwxr-xr-x   1 root   wheel        74  7  9  2016 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
    406879 lrwxr-xr-x   1 root   wheel        75  7  9  2016 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
    406880 lrwxr-xr-x   1 root   wheel        77  7  9  2016 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
    406881 lrwxr-xr-x   1 root   wheel        75  7  9  2016 javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
    406882 lrwxr-xr-x   1 root   wheel        75  7  9  2016 javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
    406883 lrwxr-xr-x   1 root   wheel        76  7  9  2016 javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
    406884 lrwxr-xr-x   1 root   wheel        74  7  9  2016 jcmd -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jcmd
    406885 lrwxr-xr-x   1 root   wheel        78  7  9  2016 jconsole -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jconsole
    406886 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jdb -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jdb
    406887 lrwxr-xr-x   1 root   wheel        75  7  9  2016 jdeps -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jdeps
    406888 lrwxr-xr-x   1 root   wheel        74  7  9  2016 jhat -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jhat
    406889 lrwxr-xr-x   1 root   wheel        75  7  9  2016 jinfo -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jinfo
    406890 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jjs -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jjs
    406891 lrwxr-xr-x   1 root   wheel        74  7  9  2016 jmap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jmap
    406892 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jmc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jmc

    3.3 软连接建立和测试

    ln -s /data/kafka  /kafka
     ls -li
    11373698 lrwxr-xr-x   1 root  wheel    11  1 19 18:09 kafka -> /data/kafka

    4. 参考文献

    [1]. Mac 可设置环境变量的位置、查看和添加PATH环境变量 
    [2]. Mac 的环境变量设置 
    [3]. Linux下建立软连接 
    [4]. Linux软连接和硬链接

  • 相关阅读:
    【python】turtle龟绘制开了花朵的树,程序画图
    【python】一行代码,使用pychorus提取音乐高潮部分
    【python】自动打开指定软件
    【VBA】用excel玩游戏,俄罗斯方块
    【python】3行代码搞定音频剪辑,入门版
    【python】3分钟搞定音频剪辑,进阶版
    【python】一键生成漂亮的节日快乐词云图
    【python】python学习之循环语句,小实验:九九乘法表
    【python】python学习之条件语句,小实验:商品打折后价格
    【python】使用webdriver在网页输入关键词并截屏
  • 原文地址:https://www.cnblogs.com/gujiande/p/9444273.html
Copyright © 2020-2023  润新知