1. 程式人生 > >MacOS設定環境變數path的完全總結

MacOS設定環境變數path的完全總結

MacOS設定環境變數path的完全總結

 

 一、MacOS載入bash shell 環境變數的載入順序

   mac 一般使用bash作為預設shell,Mac系統的環境變數,載入順序為:

1、系統級別的

/etc/profile                                                   

/etc/bashrc 

/etc/paths 

 

2、使用者級別的

~/.bash_profile  (mac用的)

~/.bash_login   

~/.profile   

~/.bashrc (這個linux用的)

 

 

二、各載入方式的分析和修改方法

1、/etc/profile

etc - environment config 環境設定, profile - 檔案

(1)檔案構成

執行vi /etc/profile之後呈現:

 

 
  1. # System-wide .profile for sh(1)

  2.  
  3. if [ -x /usr/libexec/path_helper ]; then

  4. eval `/usr/libexec/path_helper -s`

  5. fi

  6.  
  7. if [ "${BASH-no}" != "no" ]; then

  8. [ -r /etc/bashrc ] && . /etc/bashrc

  9. fi


(2)級別:系統級別,應該是不管哪個shell都呼叫這個profile,所以不建議用這個檔案用於全域性環境變數

/etc/profile:此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行,並從/etc/profile.d目錄的配置檔案中搜集shell的設定

(3)修改方法:

 

如果沒特殊說明,設定PATH的語法都為:

MacOS設定環境變數path的完全總結

 

 一、MacOS載入bash shell 環境變數的載入順序

   mac 一般使用bash作為預設shell,Mac系統的環境變數,載入順序為:

1、系統級別的

/etc/profile                                                   

/etc/bashrc 

/etc/paths 

 

2、使用者級別的

~/.bash_profile  (mac用的)

~/.bash_login   

~/.profile   

~/.bashrc (這個linux用的)

 

 

二、各載入方式的分析和修改方法

1、/etc/profile

etc - environment config 環境設定, profile - 檔案

(1)檔案構成

執行vi /etc/profile之後呈現:

 

 
  1. # System-wide .profile for sh(1)

  2.  
  3. if [ -x /usr/libexec/path_helper ]; then

  4. eval `/usr/libexec/path_helper -s`

  5. fi

  6.  
  7. if [ "${BASH-no}" != "no" ]; then

  8. [ -r /etc/bashrc ] && . /etc/bashrc

  9. fi


(2)級別:系統級別,應該是不管哪個shell都呼叫這個profile,所以不建議用這個檔案用於全域性環境變數

/etc/profile:此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行,並從/etc/profile.d目錄的配置檔案中搜集shell的設定

(3)修改方法:

 

如果沒特殊說明,設定PATH的語法都為:

1

2

#中間用冒號隔開

     export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

 

 

 

 

2、/etc/bashrc - 建議修改,方法複雜(系統級別2、和下面的3只修改一個就可以了)

 

bashrc - bash run config,bash執行時候的設定

(1)檔案構成

 

執行vi /etc/bashrc之後呈現:

 

 
  1. # System-wide .bashrc file for interactive bash(1) shells.

  2. if [ -z "$PS1" ]; then

  3. return

  4. fi

  5.  
  6. PS1='\h:\W \u\$ '

  7. # Make bash check its window size after a process completes

  8. shopt -s checkwinsize

  9.  
  10. [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

 

(2)級別:這個是bash啟動時候必須載入的環境變數,做為全域性環境變數設定是可以行的

/etc/bashrc:為每一個執行bash shell的使用者執行此檔案,當bash shell被開啟時,該檔案被讀取。

 

(3)修改方法:同上/etc/profile

 

 

 

3、/etc/paths - 建議修改,方法簡單

(1)檔案構成

 

 

執行vi /etc/paths之後呈現:

 

 
  1. /usr/local/bin

  2. /usr/bin

  3. /bin

  4. /usr/sbin/sbin

 

 

(2)級別:實質上這就是個系統全域性的路徑,不建議做直接改動,具體改動的方法兩個。

(3)修改方法:就是載入路徑

 

 
  1. 1.建立一個檔案:

  2. sudo touch /etc/paths.d/mysql

  3. 2.用 vim 開啟這個檔案(如果是以 open -t 的方式開啟,則不允許編輯):

  4. sudo vim /etc/paths.d/mysql

  5. 3.編輯該檔案,鍵入路徑並儲存(關閉該 Terminal 視窗並重新開啟一個,就能使用 mysql 命令了)

  6. /usr/local/mysql/bin

 

或者

 

sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

 

 

4、~/.bash_profile 使用者級別,建議修改這個檔案。系統、使用者級別只要選一個修改就夠了

      ~/.bash_login

      ~/.profile

(1)檔案構成:和/etc/profile一樣,export PATH=$PATH:/xxx/bin:/bin

 

(2)級別:使用者級別,這三個MacOS按照順序查詢,找到了一個,就不往下查找了。使用者登入後執行一次

(3)修改方法:同/etc/profile
 

5、~/.bashrc 使用者級別

(1)檔案構成:和/etc/profile一樣,export PATH=$PATH:/xxx/bin:/bin

 

(2)級別:使用者級別。每次開啟新的shell視窗,都會去讀取一次。

(注:Linux 裡面是 .bashrc 而 Mac 是 .bash_profile)

 

(3)修改方法:同/etc/profile

 

 

 


 

 

延 * 伸 * 閱 * 讀

 

 
  1. 延伸閱讀http://elf8848.iteye.com/blog/1582137

  2. Mac 啟動載入檔案位置(可設定環境變數)

  3. -------------------------------------------------------

  4. (1)首先要知道你使用的Mac OS X是什麼樣的Shell,使用命令

  5. echo $SHELL

  6. 如果輸出的是:csh或者是tcsh,那麼你用的就是C Shell。

  7. 如果輸出的是:bash,sh,zsh,那麼你的用的可能就是Bourne Shell的一個變種。

  8. Mac OS X 10.2之前預設的是C Shell。

  9. Mac OS X 10.3之後預設的是Bourne Shell。

  10. (2)如果是Bourne Shell。

  11. 那麼你可以把你要新增的環境變數新增到你主目錄下面的.profile或者.bash_profile,如果存在沒有關係新增進去即可,如果沒有生成一個。

  12.  
  13. Mac配置環境變數的地方

  14. 1./etc/profile (建議不修改這個檔案 )

  15. 全域性(公有)配置,不管是哪個使用者,登入時都會讀取該檔案。

  16. 2./etc/bashrc (一般在這個檔案中新增系統級環境變數)

  17. 全域性(公有)配置,bash shell執行時,不管是何種方式,都會讀取此檔案。

  18. 3.~/.bash_profile (一般在這個檔案中新增使用者級環境變數)

  19. 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次!

 

參考文章一,《MAC 設定環境變數path的幾種方法》,原文連結:http://www.flakor.cn/2014-09-14-714.html

 

 

 

 

2、/etc/bashrc - 建議修改,方法複雜(系統級別2、和下面的3只修改一個就可以了)

 

bashrc - bash run config,bash執行時候的設定

(1)檔案構成

 

執行vi /etc/bashrc之後呈現:

 

 
  1. # System-wide .bashrc file for interactive bash(1) shells.

  2. if [ -z "$PS1" ]; then

  3. return

  4. fi

  5.  
  6. PS1='\h:\W \u\$ '

  7. # Make bash check its window size after a process completes

  8. shopt -s checkwinsize

  9.  
  10. [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

 

(2)級別:這個是bash啟動時候必須載入的環境變數,做為全域性環境變數設定是可以行的

/etc/bashrc:為每一個執行bash shell的使用者執行此檔案,當bash shell被開啟時,該檔案被讀取。

 

(3)修改方法:同上/etc/profile

 

 

 

3、/etc/paths - 建議修改,方法簡單

(1)檔案構成

 

 

執行vi /etc/paths之後呈現:

 

 
  1. /usr/local/bin

  2. /usr/bin

  3. /bin

  4. /usr/sbin/sbin

 

 

(2)級別:實質上這就是個系統全域性的路徑,不建議做直接改動,具體改動的方法兩個。

(3)修改方法:就是載入路徑

 

 
  1. 1.建立一個檔案:

  2. sudo touch /etc/paths.d/mysql

  3. 2.用 vim 開啟這個檔案(如果是以 open -t 的方式開啟,則不允許編輯):

  4. sudo vim /etc/paths.d/mysql

  5. 3.編輯該檔案,鍵入路徑並儲存(關閉該 Terminal 視窗並重新開啟一個,就能使用 mysql 命令了)

  6. /usr/local/mysql/bin

 

或者

 

sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

 

 

4、~/.bash_profile 使用者級別,建議修改這個檔案。系統、使用者級別只要選一個修改就夠了

      ~/.bash_login

      ~/.profile

(1)檔案構成:和/etc/profile一樣,export PATH=$PATH:/xxx/bin:/bin

 

(2)級別:使用者級別,這三個MacOS按照順序查詢,找到了一個,就不往下查找了。使用者登入後執行一次

(3)修改方法:同/etc/profile
 

5、~/.bashrc 使用者級別

(1)檔案構成:和/etc/profile一樣,export PATH=$PATH:/xxx/bin:/bin

 

(2)級別:使用者級別。每次開啟新的shell視窗,都會去讀取一次。

(注:Linux 裡面是 .bashrc 而 Mac 是 .bash_profile)

 

(3)修改方法:同/etc/profile

 

 

 


 

 

延 * 伸 * 閱 * 讀

 

 
  1. 延伸閱讀http://elf8848.iteye.com/blog/1582137

  2. Mac 啟動載入檔案位置(可設定環境變數)

  3. -------------------------------------------------------

  4. (1)首先要知道你使用的Mac OS X是什麼樣的Shell,使用命令

  5. echo $SHELL

  6. 如果輸出的是:csh或者是tcsh,那麼你用的就是C Shell。

  7. 如果輸出的是:bash,sh,zsh,那麼你的用的可能就是Bourne Shell的一個變種。

  8. Mac OS X 10.2之前預設的是C Shell。

  9. Mac OS X 10.3之後預設的是Bourne Shell。

  10. (2)如果是Bourne Shell。

  11. 那麼你可以把你要新增的環境變數新增到你主目錄下面的.profile或者.bash_profile,如果存在沒有關係新增進去即可,如果沒有生成一個。

  12.  
  13. Mac配置環境變數的地方

  14. 1./etc/profile (建議不修改這個檔案 )

  15. 全域性(公有)配置,不管是哪個使用者,登入時都會讀取該檔案。

  16. 2./etc/bashrc (一般在這個檔案中新增系統級環境變數)

  17. 全域性(公有)配置,bash shell執行時,不管是何種方式,都會讀取此檔案。

  18. 3.~/.bash_profile (一般在這個檔案中新增使用者級環境變數)

  19. 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次!

 

參考文章一,《MAC 設定環境變數path的幾種方法》,原文連結:http://www.flakor.cn/2014-09-14-714.html