繁体   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