转载地址:http://blog.csdn.net/u010416101/article/details/54618621
1.1 环境变量的作用
环境变量和全局的变量有什么用呢?
1.1.1 使用场景1
我们先来看这样的一个使用场景1,我们有一个程序Java,需要读取某个文件(/data/file.txt)。 那么我们在运行的时候是不是需要做如下的步骤:
cd 到Java的目录下;
执行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
123
123
这样,在改变的时候,就不需要去不到改变,而改变部分句可以了。
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
12
12
可以看出,我的目录下有”/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
1
1
2.2 Mac配置环境变量的地方
/etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。/etc/bashrc (一般在这个文件中添加系统级环境变量) 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。~/.bash_profile (一般在这个文件中添加用户级环境变量) 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
2.3 常见操作命令
2.3.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。如果是Bourne Shell。 那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。
2.3.2 修改host文件
sudo vi /etc/hosts
1
1
2.3.3 linux下查看和添加PATH环境变量
PATH的格式为: PATH=$PATH::::——: ,中间用冒号隔开。
2.3.4 添加PATH环境变量:
[root
@localhost u-boot-sh4]
1
1
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
12
12
2.3.6 操作示例
通过编辑 启动文件 来改PATH。
# vim /etc/profile
1
1
在文档最后,添加:
export PATH=
"/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
1
1
保存,退出。
想立即生效请运行:
#source /etc/profile
1
1
不报错则成功。
如果想立刻生效,则可执行下面的语句:”$ source .bash_profile(这是文件名”。环境变量更改后,在用户下次登陆时生效。
3. 软连接
另外有很多小伙伴可能发现了,在mac上不设置环境变量有的时候也可以直接就访问到了某些文件。这个是为什么呢?答案是用了软连接。
3.1 查看加载文件
可以使用cat命令查看paths文件
localhost:/
Sean$ cat etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
123456
123456
答案就是mac会自动加载paths目录,自动加载这些文件夹下的文件,所以使用软连接,在这些文件夹下建立软连接,可能达到相同的效果。
3.2 软连接查看
ls -li
1
1
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
1234567891011121314151617
1234567891011121314151617
3.3 软连接建立和测试
ln -s /
data/kafka /kafka
1
1
ls
-li
11373698 lrwxr
-xr-x 1 root wheel
11 1 19 18:
09 kafka
-> /
data/kafka
12
12
4. 参考文献
[1]. Mac 可设置环境变量的位置、查看和添加PATH环境变量 [2]. Mac 的环境变量设置 [3]. Linux下建立软连接 [4]. Linux软连接和硬链接