簡體   English   中英

在 OSX 中永久設置 PATH 環境變量

[英]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),如下所列:

  1. 正如投票最高的答案所說, vi /etc/paths ,從我的角度推薦。

  2. 另外不要忘記/etc/paths.d目錄,其中包含可能影響$PATH變量的文件,在我的情況下設置gitmono-command路徑。 您可以ls -l /etc/paths.d列出項目, rm /etc/paths.d/path_you_dislike刪除項目。

  3. 如果您使用“bash”環境(例如默認的Terminal.app ),您應該查看~/.bash_profile~/.bashrc 可能還沒有那個文件,但這兩個文件對$PATH

  4. 如果您使用“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/ )中,它只會影響您的帳戶設置。

閱讀更多: Mac OS X:設置/更改 $PATH 變量 - nixCraft

你也可以添加這個

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

~/.bash_profile ,然后創建~/.bashrc ,您可以在其中向 PATH 添加更多路徑。 一個例子.

export PATH=$PATH:.

在 MacOS 中要添加到 PATH 環境變量的新路徑只需在/etc/paths.d目錄下創建一個新文件,並在文件中添加要設置的寫入路徑。 重啟終端。 您可以在提示符處使用echo $PATH檢查以確認路徑是否已添加到環境變量中。

例如:將新路徑/usr/local/sbinPATH變量:

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,請執行以下操作。

  1. 打開 .zshrc 文件nano $HOME/.zshrc

  2. 您將在此處看到注釋的 $PATH 變量

    # If you come from bash you might have to change your $PATH.
    # export PATH=$HOME/bin:/usr/local/...

  3. 刪除注釋符號 (#) 並使用分隔符 (:) 附加您的新路徑,如下所示。

導出路徑=$HOME/bin:/usr/local/bin: /Users/ebin/Documents/Softwares/mongoDB/bin :$PATH

  1. 激活更改source $HOME/.zshrc

你完成了 !!!

我嘗試了第一種方法並通過了參考頁,很好地執行了路徑設置。但是當我echo $ PATH時,它沒有設置路徑設置

launchctl setenv environmentvariablename environmentvariablevalue

或者

launchctl setenv environmentvariablename `command that will generate value`

使用正確的 ` 並記住重新啟動應用程序或終端以使環境變量生效。

您可以通過 printenv 命令檢查環境變量。

注意:名為 path 的環境變量已經由其他人設置,因此我們在這里根本不會向該路徑附加任何內容。

在 Mac 中設置路徑有兩種方法。

  1. 為變量名創建一個文件並將路徑粘貼到 /etc/paths.d 下,並將文件來源到 profile_bashrc。
  2. ~/.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環境變量的順序:

  1. etc/paths文本文件中的每一行都被附加
  2. etc/paths.d目錄中每個文本文件中的每一etc/paths.d被附加
  3. 最后,在~/.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM