[转载] mac开发者,你不得不知道的环境变更设置方法(如Java的环境变更 source命令 )

参考链接: 设置Java环境

Mac是基于Unix的,所有先来几个常识与命令: 

 

Unix中双引号单引号反引号(" ' `)的区别 

 

  

  Unix中双引号起到“弱引用”的作用:被引用的字符大部分被按照字符字面的意思解释执行,除了了$,\,`字符除外。 

  [因为弱,所以要“双”引号]  

  Unix中单引号起到“强引用”的作用:被引用的字符全部被按照字符字面的意思解释执行。 

  [因为强,所以要“单”引号就够了]  

  Unix中反引号起到“反引用”的作用:被引用的字符全部被按照字符代表的命解释执行,通常用于命令替换。 

  [因为要反过来解释,所以要“反”引号]  

  例子: 

  echo “$HOME” 

  output:打印HOME变量代表的值。 

  echo ’$HOME‘ 

  output:打印$HOME。 

  echo "the date today is `date`" 

  output: the date today is +date 命令的结果 

  命令替换:`date`先于echo执行,结果替换到echo中。  

   

  echo 'the date today is `date`‘ 

  output: the date today is `date` 

  

 source命令  

 

  一、首先查看shell版本 使用命令echo $SHELL 如果输出的是:csh或者是tcsh,就是C Shell。 如果输出的是:bash,sh,zsh,就是Bourne Shell的一个变种。 Mac OS X 10.3之后默认的是Bourne Shell。 Mac OS X 10.2之前默认的是C Shell,使用的命令是setev。 二、针对Bourne Shell添加环境变量 1.创建并以 TextEdit 的方式打开 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增环境变量 export PATH="$HOME/.rbenv/bin:$PATH" 3.让以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有时可能需要关闭当前 Terminal 窗口重新开启一个) echo $PATH 需要注意的一点(冒号乃环境变量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多个环境变量的话,需按照如下的方式来书写: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"  三、针对Bourne Shell删除环境变量 若要删除环境变量:unset DYLD_LIBRARY_PATH,其中DYLD_LIBRARY_PATH(环境变量名) 删除环境变量之后需要先logout,关闭terminal,再重新打开terminal  四、针对Bourne Shell恢复环境变量 PATH=$(getconf PATH),执行此命令将环境变量恢复到系统初始值 source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则可以用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。把两个命令用&&联接起来,如 make mrproper &&make menuconfig ,表示要第一个命令执行成功才能执行第二个命令。 在编译核心时,常常要反复输入一长串命令,如 make mrproper make menuconfig make dep make clean make bzImage ....... 

  

 Mac OS增删环境变量 

 

  一、首先查看shell版本 使用命令echo $SHELL 如果输出的是:csh或者是tcsh,就是C Shell。 如果输出的是:bash,sh,zsh,就是Bourne Shell的一个变种。 Mac OS X 10.3之后默认的是Bourne Shell。 Mac OS X 10.2之前默认的是C Shell,使用的命令是setev。 二、针对Bourne Shell添加环境变量 1.创建并以 TextEdit 的方式打开 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增环境变量 export PATH="$HOME/.rbenv/bin:$PATH" 3.让以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有时可能需要关闭当前 Terminal 窗口重新开启一个) echo $PATH 需要注意的一点(冒号乃环境变量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多个环境变量的话,需按照如下的方式来书写: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 三、针对Bourne Shell删除环境变量 若要删除环境变量:unset DYLD_LIBRARY_PATH,其中DYLD_LIBRARY_PATH(环境变量名) 删除环境变量之后需要先logout,关闭terminal,再重新打开terminal 四、针对Bourne Shell恢复环境变量 PATH=$(getconf PATH),执行此命令将环境变量恢复到系统初始值 

  

  

  Mac添加环境变量的三种方法 

  

   法一: sudo vi /etc/paths 来编辑 paths,将环境变量添加到 paths 中。 vim 是一个编辑器,另外还有几个,如:Pico,Emacs。 Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。 法二: 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 一个文件里,方便管理。 法三: 1.创建并以 TextEdit 的方式打开 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile 2.新增环境变量 export PATH="$HOME/.rbenv/bin:$PATH" 3.让以上所做的配置生效 source ~/.bash_profile 4.查看是否生效(有时可能需要关闭当前 Terminal 窗口重新开启一个) echo $PATH 需要注意的一点(冒号乃环境变量的分隔符): $HOME/.rbenv/bin:$PATH 中的 $PATH 特指 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 如果要添加多个环境变量的话,需按照如下的方式来书写: export PATH="$PATH:/Applications/MacVim-snapshot-68" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" 

   

  

  

  Mac上的Java究竟在哪儿 

  

   习惯了在Windows下开发的朋友,初次在Mac下进行Java编程开发对其安装位置都要纠结半天。这里作如下说明 1. Mac下当你在【终端】输入java -version时,是执行的哪里的java呢,which java命令可以看到,就是【/usr/bin/java】 2. 【/usr/bin/java】只是个替身,实际指向【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】,如图,ls -l java就可以看到  3. 第2点提到的【/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java】其实也不是真正的java,因为Current文件夹是替身,它指向了同目录下的某个版本,例如A文件夹,如下图:(这样的好处是装了多个版本java后,可以方便地调整Current指向,使得不同版本java变成系统默认的,通常在【实用工具】->【Java偏好设置】里可以调整)

   

  

    4.第3点提到的A文件夹是安装java后系统生成的。它里面的Commands文件夹下有个java可执行文件,这个java其实调用了真真正正的java原身–>【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】(你试试把这个java改个名,再在终端里输入java就明白了哦) PS:这里的版本号(1.6.0_37-b06-434)不同的机器可能不一样,也可能会存在多个版本,这就看你机器上装了多少个版本的java了 5. 归根到底,【/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home/bin/java】才是真正的工作者啊,绕吧 

   

  $JAVA_HOME环境变量在Mac OS X中设置的问题 

   

    Mac OSX新版本(10.5+)之后,已经建议$JAVA_HOME的设置用 /usr/libexec/java_home,因为java_home 可以根据你的需要返回指定的版本。 

    1、默认是查看当前版本: 

    

    

     

      

       1 $ /usr/libexec/java_home 

      

      

       2 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

     

    

    2、-V (大写)参数可以列出所有的版本: 

    

     

      

       1 $ /usr/libexec/java_home -V 

      

      

       2 Matching Java Virtual Machines (5): 

      

      

       3     1.7.0_25, x86_64:   "Java SE 7"/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

      

       4     1.6.0_65-b14-462, x86_64:   "Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

      

      

       5     1.6.0_65-b14-462, i386: "Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

      

      

       6     1.6.0_37-b06-434, x86_64:   "Java SE 6"/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home 

      

      

       7     1.6.0_37-b06-434, i386: "Java SE 6"/Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home 

      

      

       8   

      

      

       9 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

     

    

    3、-a 参数可以根据CPU的类型过滤 

    

     

      

       1 $ /usr/libexec/java_home -a i386 

      

      

       2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

      

      

       3 $ /usr/libexec/java_home -a x86_64 

      

      

       4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

     

    

    4、-d 参数可以过滤 32位、64位 

    

     

      

       1 $ /usr/libexec/java_home -d 32 

      

      

       2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

      

      

       3 $ /usr/libexec/java_home -d 64 

      

      

       4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

     

    

    5、-v (小写)参数可以过滤版本: 

    

     

      

       1 micmiu-mbp:~ micmiu$ /usr/libexec/java_home -v 1.6 

      

      

       2 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 

      

      

       3 micmiu-mbp:~ micmiu$ /usr/libexec/java_home -v 1.7 

      

      

       4 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home 

      

     

    

    以后就可以在~/.profile  中按照如下方法自定义$JAVA_HOME: 

    

     

      

       1 #指定默认版本 

      

      

       2 export JAVA_HOME=`/usr/libexec/java_home` 

      

      

       3 export JAVA_HOME=$(/usr/libexec/java_home) 

      

      

       4 #指定自定义版本 

      

      

       5 export JAVA_HOME=`/usr/libexec/java_home -d 64 -v 1.6` 

      

      

       6 export JAVA_HOME=$(/usr/libexec/java_home -d 64 -v 1.6)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值