[转载] 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人形机器人正在美国史密森尼博物馆中担任导游的工作

Te article has been removed, please visit IncludeHelps home page for more articles 该文章已被删除,请访问IncludeHelp的主页以获取更多文章翻译自: https://www.includehelp.com/News/a-humanoid-robot-is-doing-the-job-of-a-guide-in-the-smithsonian-museu…

normalizr API

APInormalizedenormalizeschemaArrayEntityObjectUnionValuesnormalize(data, schema)Normalizes input data per the schema definition provided. 根据提供的schema定义规范化输入数据。data: required Input JSON (or plain JS object) data that needs normalization.schem…

[转载] 【Java】基础06:HelloWorld入门程序

参考链接: 从Hello World示例开始Java编程 HelloWorld它的中文意思是:“你好,世界”。 仿佛代表着计算机对世界说出来的第一句话,因为它简洁实用,所以被作为入门程序广泛使用。 Java程序开发三步骤:编…

[转载] Java中的命名参数

参考链接: Java命名约定 创建具有许多参数的方法是一个主要的缺点。 每当需要创建这样的方法时,就在空气中闻一闻:这是代码的味道。 强化单元测试,然后进行重构。 没有借口,没有屁股。 重构! 使用构建器模…

[转载] JVM(一):JVM体系结构详解

参考链接: JVM如何工作–JVM体系结构 JVM简介 JVM是Java程序得以运行的平台,也是Java程序可以跨平台的底层支撑,从整体上来看,JVM的主要功能可以分为加载和执行两大块。其中类加载器负责.class文件的寻址与加载&#xff0…

数据库连接池的设计思路及java实现

2019独角兽企业重金招聘Python工程师标准>>> connectionPool.DBConnectionManager [java] view plain copy package connectionPool; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; i…

[转载] java虚拟机 jvm 出入java栈 栈空间内存分配

参考链接: Java虚拟机(JVM)堆栈区域 java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关。线程最基本的执行行为就是函数的调用。每次函数调用其实是通过java栈传递数据的。 数据结构中的栈的…

SVN命令行更新代码

命令列表 svn help查看帮助信息 Available subcommands: add auth blame (praise, annotate, ann) cat changeli…

[转载] Java中Runtime的使用

参考链接&#xff1a; Java中的JVM的关闭挂钩 1 JDK中Runtime的定义 http://blog.csdn.net/lysnow_oss/archive/2007/05/12/1606349.aspx <转载> 那就首先说点Runtime类吧&#xff0c;他是一个与JVM运行时环境有关的类&#xff0c;这个类是Singleton的。我…

窄带物联网(NB-IoT)初步了解

哪有什么天生如此&#xff0c;只是我们天天坚持。既然总有人要赢的话&#xff0c;为什么不能是我呢&#xff1f;[TOC] 什么是NB-Iot? 基于蜂窝的窄带物联网&#xff08;Narrow Band Internet of Things, NB-IoT&#xff09;成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网…

ai人工智能_人工智能能力问答中的人工智能不确定性

ai人工智能1) Which of the following is true with respect to uncertainty in AI systems? Uncertainty arises when we are not 100 percent confident in our decisionsWhenever uncertainty arises, there is needs to be an estimation taken for getting to any conclu…

[转载] 弄懂JDK、JRE和JVM到底是什么

参考链接&#xff1a; JDK JRE和JVM之间的区别 首先是JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 在JDK的安装目录下有一个jre目录&#xff0c;里面有两个文件夹bin和lib&#xff0c;在这里可以认为bin里的就是jvm&#xff0c;lib中则是jvm工作所需要…

mcq 队列_人工智能搜索问题能力问题解答(MCQ)

mcq 队列1) The main Aim of the AI system is to provide a solution for real-life problems by acting and thinking humanly. Whenever an agent is confronted by a problem, what is the first step that it follows towards searching a solution to the problem? Sear…

JavaOne大事纪:IBM谈OpenJ9和Open Liberty

JavaOne大会以IBM陈述其最近对开源社区的贡献作为开场&#xff1a;OpenJ9、Open Liberty和MicroProfile。IBM杰出工程师John Duimovich做了“IBM和Java&#xff1a;助力下一代创新”的开场演讲。\\读者可以回看演讲视频。\\Duimovich说IBM之所以致力于推动Java生态系统的创新&a…

[转载] JVM中对象的回收过程

参考链接&#xff1a; JVM是否创建Main类(具有main()的类)的对象 当我们的程序开启运行之后就&#xff0c;就会在我们的java堆中不断的产生新的对象&#xff0c;而这是需要占用我们的存储空间的&#xff0c;因为创建一个新的对象需要分配对应的内存空间&#xff0c;显然我的内…

c语言格式对齐填充_C ++中类的大小 课堂上的填充和对齐| 派生类的大小

c语言格式对齐填充Prerequisite: 先决条件&#xff1a; sizeof() operator in C/C C / C 中的sizeof()运算符 Size of struct in C C中的struct大小 We know that a struct size is not only the summation of all the data members, rather its the minimum sum guaranteed. …

ELK系列~对fluentd参数的理解

这段时候一直在研究ELK框架&#xff0c;主要集成在对fluentd和nxlog的研究上&#xff0c;国内文章不多&#xff0c;主要看了一下官方的API&#xff0c;配合自己的理解&#xff0c;总结了一下&#xff0c;希望可以帮到刚入行的朋友们&#xff01; Fluentd&#xff08;日志收集与…

[转载] Java中的50个关键字

参考链接&#xff1a; Java平台如何独立 Java中的50个关键字 关键字也称为保留字&#xff0c;是指java语言中规定了特定含义的标示符。对于保留字&#xff0c;用户只能按照系统规定的方式使用&#xff0c;不能自行定义。Java中有50个常用关键字&#xff1a; 与数据类型相关…

MySQL 直接存储图片并在 html 页面中展示,点击下载

数据库实体类&#xff1a; package com.easy.kotlin.picturecrawler.entityimport java.util.* import javax.persistence.*Entity Table(indexes arrayOf(Index(name "idx_url", unique true, columnList "url"),Index(name "idx_category"…

css 文本背景色透明_如何使用CSS将文本或图像的背景设置为透明?

css 文本背景色透明Introduction: 介绍&#xff1a; In web development, there are numerous ways by which we can style our websites or web pages. You can make use of lots of properties for creating attractive and responsive websites. 在Web开发中&#xff0c;我…