1. 程式人生 > >Mac 中環境變量的配置

Mac 中環境變量的配置

etc 判斷 登陸 輸出 ech host文件 $path root ole

1. 基本了解

1.1. 查看當前path

在講解Mac環境變量配置之前,大家可以打開dos框,輸入
echo $PATH 查看當前的path。

本機結果:

/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/apple/Library/Android/sd/tools:/Users/apple/Library/Android/sd/platform-tools:/Users/apple/Documents/mongodb/mongodb-3.6.4/bin

可以看出,我的目錄下有/usr/local/bin/usr/bin...都被作為環境變量進行加載了。

1.2. 環境變量文件的優先級

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

/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc

1.3 Mac配置環境變量的地方

  1. /etc/profile (建議不修改這個文件 )
    全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件。

  2. /etc/bashrc (一般在這個文件中添加系統級環境變量)
    全局(公有)配置,bash shell執行時,不管是何種方式,都會讀取此文件。

  3. ~/.bash_profile (一般在這個文件中添加用戶級環境變量)
    每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!

2. 常見操作命令

2.1 操作系統判斷

首先要知道你使用的Mac OS X是什麽樣的Shell,使用命令 echo $SHELL

  1. 如果輸出的是:csh或者是tcsh,那麽你用的就是C Shell。
  2. 如果輸出的是:bashshzsh,那麽你的用的可能就是Bourne Shell的一個變種。

Mac OS X 10.2之前默認的是C
Shell。 Mac OS X 10.3之後默認的是Bourne Shell。

如果是Bourne Shell。
那麽你可以把你要添加的環境變量添加到你主目錄下面的.profile或者.bash_profile,如果存在沒有關系添加進去即可,如果沒有生成一個。

2.2 修改host文件

sudo vi /etc/hosts

2.3 linux下查看和添加PATH環境變量

PATH的格式為:

PATH=$PATH::::——:

中間用冒號隔開。

2.4 添加PATH環境變量:

[root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH

2.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.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
```

Mac 中環境變量的配置