[英]Setting PATH environment variable in OSX permanently
我已經閱讀了幾個關於如何在 OSX 上永久設置環境變量的答案。
首先,我嘗試了這個, 如何在 Linux/Unix 上永久設置 $PATH? 但是我有一條錯誤消息說no such file and directory
,所以我想我可以嘗試~/.bash_profile
而不是~/.profile
但它沒有用。
其次,我找到了這個解決方案How to set the $PATH as used by applications in os x ,它建議在
~/.MacOSX/environment.plist
但我再次no such file and directory
錯誤。
我需要一種設置這些變量的方法,這樣每次打開新的終端會話時就不需要一次又一次地設置它們。
您必須將其添加到/etc/paths
。
參考(對我有用): 這里
我發現有些文件可能會影響 macOS 中的$PATH
變量(適用於我,10.11 El Capitan),如下所列:
正如投票最高的答案所說, vi /etc/paths
,從我的角度推薦。
另外不要忘記/etc/paths.d
目錄,其中包含可能影響$PATH
變量的文件,在我的情況下設置git
和mono-command
路徑。 您可以ls -l /etc/paths.d
列出項目, rm /etc/paths.d/path_you_dislike
刪除項目。
如果您使用“bash”環境(例如默認的Terminal.app
),您應該查看~/.bash_profile
或~/.bashrc
。 可能還沒有那個文件,但這兩個文件對$PATH
。
如果您使用“zsh”環境(例如Oh-My-Zsh ),您應該查看~./zshrc
而不是~/.bash*
東西。
並且不要忘記重新啟動所有終端窗口,然后echo $PATH
。 $PATH
字符串將為PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2
。
請注意,前兩種方式( /etc/paths
和/etc/path.d
)在/
目錄中,這將影響您計算機中的所有帳戶,而后兩種方式( ~/.bash*
或~/.zsh*
)位於~/
目錄(又名, /Users/yourusername/
)中,它只會影響您的帳戶設置。
你也可以添加這個
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
到~/.bash_profile
,然后創建~/.bashrc
,您可以在其中向 PATH 添加更多路徑。 一個例子.
export PATH=$PATH:.
在 MacOS 中要添加到 PATH 環境變量的新路徑只需在/etc/paths.d
目錄下創建一個新文件,並在文件中添加要設置的寫入路徑。 重啟終端。 您可以在提示符處使用echo $PATH
檢查以確認路徑是否已添加到環境變量中。
例如:將新路徑/usr/local/sbin
到PATH
變量:
cd /etc/paths.d
sudo vi newfile
該路徑添加到newfile
並保存。
重啟終端並輸入echo $PATH
確認
您可以打開以下任何文件:
/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)
並添加:
export PATH="$PATH:your/new/path/here"
如果您使用的是 zsh,請執行以下操作。
打開 .zshrc 文件nano $HOME/.zshrc
您將在此處看到注釋的 $PATH 變量
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/...
刪除注釋符號 (#) 並使用分隔符 (:) 附加您的新路徑,如下所示。
導出路徑=$HOME/bin:/usr/local/bin: /Users/ebin/Documents/Softwares/mongoDB/bin :$PATH
source $HOME/.zshrc
你完成了 !!!
我嘗試了第一種方法並通過了參考頁,很好地執行了路徑設置。但是當我echo $ PATH時,它沒有設置路徑設置
launchctl setenv environmentvariablename environmentvariablevalue
或者
launchctl setenv environmentvariablename `command that will generate value`
使用正確的 ` 並記住重新啟動應用程序或終端以使環境變量生效。
您可以通過 printenv 命令檢查環境變量。
注意:名為 path 的環境變量已經由其他人設置,因此我們在這里根本不會向該路徑附加任何內容。
在 Mac 中設置路徑有兩種方法。
將~/.profile_bashrc
路徑變量導出為
導出變量名 = $(PATH_VALUE)
並提供路徑。 它簡單而穩定。
您也可以通過Mac terminal
或在linux
設置任何path variable
。
這對我有用https://blog.just2us.com/2011/05/setting-path-variable-in-mac-permanently/
它顯示了如何為您的用戶或全局設置
顯示所有隱藏文件,如 .bash_profile 和 .zshrc $ ls -a
從 macOS Catalina 開始,mac 使用 zsh 而不是 bash。 所以默認情況下mac使用zsh。 檢查哪個 shell 正在運行:
$ echo $SHELL
/usr/zsh
$ cd $HOME
$ open -e .zshrc
或者如果使用 vim
$ vi .zshrc
然后像這樣添加
$ export my_var="/path/where/it/exists"
$ export PATH=$PATH:/$my_var/bin
例如:如果安裝了名為:myapp in /Applications 然后
export MYAPP_HOME=/Applications/myapp
export PATH=$PATH:$MYAPP_HOME/bin
或捷徑
export PATH=${PATH}:/Applications/myapp/bin
多田你定了一輩子!!! 晚點再謝我
2021 年 10 月 19 日。
通過一次更正確認iplus26的答案。
測試環境
操作系統:macOS 11.6 (Big Sur) x86_64
外殼:zsh 5.8
以下是修改$PATH
環境變量的順序:
etc/paths
文本文件中的每一行都被附加etc/paths.d
目錄中每個文本文件中的每一etc/paths.d
被附加~/.zshrc
進一步修改了$PATH
iplus26的回答指出“當(您運行) echo $PATH
, $PATH
字符串將為 PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2”,但情況並非總是如此。 它必須取決於腳本在.zshrc
。 例如,如果我們做類似的事情
PATH="/new/path:${PATH}"
然后,新路徑將位於路徑列表的開頭。 但是,如果我們做類似的事情
PATH="${PATH}:/new/path"
然后,新路徑將附加到路徑列表的末尾。
當然,您必須確保在~/.zshrc
文件中導出修改后的路徑。
export PATH=$PATH
您可以用來“漂亮地打印”路徑列表的一個方便的命令是
print -l $path
這將在新行上打印每個路徑以獲得更好的可讀性。 注意$path
與$PATH
類似,只是它由一個空格而不是冒號分隔, :
。
希望這可以進一步澄清這個線程的新手。
sudo nano /etc/paths
現在找到命令的路徑我給出了一個設置顫振路徑的例子。
/Users/username/development/flutter/bin
現在 cntrol+x 然后是 y 。 重新打開終端並檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.