1. 程式人生 > >mac中新增環境變數無效(因為安裝了zsh)

mac中新增環境變數無效(因為安裝了zsh)

突然換成了mac工作,所以遇到了很多的問題,這一週來各種問題,尤其是環境變數的問題,讓我非常的頭疼,最終還是讓我找到了這個最正確的答案!

以下前半部說的是 使用bash作為預設shell,後半部分是 安裝了zsh導致環境變數無效的問題及解決辦法!

mac 一般使用bash作為預設shell

Mac系統的環境變數,載入順序為: /etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc 當然/etc/profile和/etc/paths是系統級別的,系統啟動就會載入,後面幾個是當前使用者級的環境變數。後面3個按照從前往後的順序讀取,如果~/.bash_profile檔案存在,則後面的幾個檔案就會被忽略不讀了,如果~/.bash_profile檔案不存在,才會以此類推讀取後面的檔案。~/.bashrc沒有上述規則,它是bash shell開啟的時候載入的。

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

1

2

#中間用冒號隔開

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

(一)全域性設定 下面的幾個檔案設定是全域性的,修改時需要root許可權

1)/etc/paths (全域性建議修改這個檔案 ) 編輯 paths,將環境變數新增到 paths檔案中 ,一行一個路徑 Hint:輸入環境變數時,不用一個一個地輸入,只要拖動資料夾到 Terminal 裡就可以了。

2)/etc/profile (建議不修改這個檔案 ) 全域性(公有)配置,不管是哪個使用者,登入時都會讀取該檔案。

3)/etc/bashrc (一般在這個檔案中新增系統級環境變數) 全域性(公有)配置,bash shell執行時,不管是何種方式,都會讀取此檔案。

4) 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 一個檔案裡,方便管理。

(二)單個使用者設定

1)~/.bash_profile (任意一個檔案中新增使用者級環境變數) (注:Linux 裡面是 .bashrc 而 Mac 是 .bash_profile) 若bash shell是以login方式執行時,才會讀取此檔案。該檔案僅僅執行一次!預設情況下,他設定一些環境變數 設定命令別名alias ll=’ls -la’ 設定環境變數:

1

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

2)~/.bashrc 同上

如果想立刻生效,則可執行下面的語句: $ source 相應的檔案 一般環境變數更改後,重啟後生效。

如果你重啟後生效了那就不用往下看了。

按照如上修改了~/.bash_profile檔案發現無效,並且提示 zsh: command not found: homestead 那麼肯定是安裝了zsh的緣故,因為安裝zsh,~/.bash_profile就不會被執行,解決辦法如下:

1.開啟vim ~/.zshrc  將你要配置到環境變數配置到該檔案中即可

2.開啟vim ~/.zshrc  新增source ~/.bash_profile ,這樣~/.bash_profile配置的環境變數同樣有效