簡體   English   中英

Zsh 中是否有類似 .bash_profile 的內容?

[英]Is there anything in Zsh like .bash_profile?

每次打開終端時,我都必須獲取.bash_profile以啟用$JAVA_HOME或其他變量。

是的,它被稱為~/.zshenv

這是我在~/.zshenv中設置$JAVA_HOME的方式:

export JAVA_HOME="$(/usr/libexec/java_home)"

但是請記住,zsh不是bash,所以只是因為每次打開終端時都必須獲取.bash_profile並不意味着您必須使用 zsh 來執行此操作。 使用 zsh,我只需要在對它進行更改時重新獲取我的~/.zshenv ,然后只針對已經打開的終端:新終端應該已經獲取了我的新的和改進的~/.zshenv

筆記

我經常發現它很有幫助,當我試圖確定我應該放置哪些 zsh 啟動文件以查閱zsh 啟動文件時。

可以在此處找到更新版本的啟動文件文檔。

我知道這是一個老問題,但我最近將 MacOs 升級到了 Catalina,它將默認 shell 從 bash 更改為 zsh。

我最終這樣做了:

 echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv

讓 zsh 獲取我原來的 .bash_profile。

最近隨着升級到 macOS Catalina,默認的 shell 改成了 zsh,它使用~/.zshrc作為資源文件。

我們通常在用戶主目錄中有~/.bash_profile解決方案是簡單地

  1. 通過運行vim ~/.bash_profile打開~/.bash_profile /.bash_profile
  2. 通過運行vim ~/.zshrc打開~/.zshrc /.zshrc
  3. ~/.bash_profile的內容復制到~/.zshrc

打開一個新的終端窗口並運行您以前的別名/腳本,它應該可以完美運行。

繼續使用 .bash_profile 的其他簡單替代方法是將此文件添加到 .zshrc 文件中:

  1. 打開你的 .zhsrc 文件 > vim ~/.zshrc
  2. 將此行添加到您的 .zshrc 文件 > source ~/.bash_profile

使用這個簡單的解決方案,如果您喜歡 zhs,您可以繼續添加您的 .bash_prifile。

添加 .bash_profile

當我們啟動 zsh shell 或將其關閉時,會執行五個單獨的配置文件腳本(按下面給出的順序)。

(1) .zshenv --> 這始終是第一個來源,但可以被其他文件覆蓋

(2).zprofile --> 這對於來自 ksh 經驗的用戶來說是等價的

(3).zshrc --> 這用於 zsh 的所有交互式自定義

(4).zlogin --> 前三個完成后執行

(5).zlogout --> 這是在我們注銷 zsh shell 時執行的,建議將你的東西放在 .zshenv 或 .zshrc 中

擁有這些文件中的任何一個都不是強制性的。 但如果它在那里,它將按上述順序獲取並執行。

在 Mac Catalina 及以上的 osx 版本中,終端使用 zsh。 有一個系統范圍的配置文件 /etc/zprofile。

貓 /etc/zprofile

# System-wide profile for interactive zsh(1) login shells.

# Setup user specific overrides for this in ~/.zprofile. See zshbuiltins(1)
# and zshoptions(1) for more details.

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

它說,如果你想覆蓋然后創建 ~/.zprofile。

touch ~/.zprofile.

在 Mac Catalina 中,終端使用 zsh。 與其擁有 .bash_profile,不如擁有 .zshenv 並在那里編寫腳本。

每次下次打開終端時,都會執行 .zshenv 中的腳本。

我遇到了這個問題,我遵循了 Zack 和 Luke Schoen 的回答,但我的$PATH看起來與我在bash中的不同。

這篇文章解釋了不同配置文件的作用: https ://unix.stackexchange.com/questions/71253/what-should-shouldnt-go-in-zshenv-zshrc-zlogin-zprofile-zlogout

我發現將我的.bash_profile路徑導出拆分為.zprofile並將我的別名拆分為.zshrc最適合我想要的。

我發現為什么 Zack 和 Luke Schoen 的回答對我不起作用:

我在.zshenv中列出的路徑導出首先被執行,然后/usr/libexec/path_helper被執行,這在/etc/paths中列出的路徑之前。

我在/etc/zprofile位置下找到了配置文件。 這將用於zsh

更新:macOS 蒙特雷 12.4

是的 - 對於 Zsh,它是文件: .zshrc添加你的參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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