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

 原文來自


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM