Mac 中環境變量的配置

1. 環境變量介紹

1.1 環境變量的做用

環境變量和全局的變量有什麼用呢?javascript

1.1.1 使用場景1

咱們先來看這樣的一個使用場景1,咱們有一個程序Java,須要讀取某個文件(/data/file.txt)。 
那麼咱們在運行的時候是否是須要作以下的步驟:html

  1. cd 到Java的目錄下;
  2. 執行Java命令;java

    可是,當咱們須要同時使用多個工具的時候,好比又有java、maven、git等等,並且是多臺機器的時候,咱們一般須要不少繁瑣的cd操做。而配置環境變量 就可使咱們能夠快速的運行這些腳本了。mysql

1.1.1 使用場景2

若是咱們又有JDK1.7,又有JDK1.8,並且須要常常的切換,那麼怎麼辦? 
能夠配置局部變量好比:linux

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

這樣,在改變的時候,就不須要所有的改變,而改變部分就能夠了。git

1.2 環境變量的做用

ok,有了上面的介紹,咱們大概就能夠知道環境變量到底有什麼用處了。用處就是能夠在操做系統的各個目錄下,都能訪問到須要的工具目錄內的內容,和Windows的桌面的思想十分類似,並且至關於在系統的各處都具備這個桌面的快捷方式。sql


2. Mac環境變量配置

在講解Mac環境變量配置以前,你們能夠打開dos框,輸入 
「echo $PATH」 查看當前的path下有什麼東西。 
我的的結果是這樣的:shell

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」都被做爲環境變量進行加載了。 
那麼下面我就講解下,這個東西到底應當如何配置。vim

2.1 環境變量文件的優先級

其配置文件的優先級以下所示:ruby

/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軟鏈接和硬連接

相關文章
相關標籤/搜索