[英]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
解决方案是简单地
vim ~/.bash_profile
打开~/.bash_profile
/.bash_profilevim ~/.zshrc
打开~/.zshrc
/.zshrc~/.bash_profile
的内容复制到~/.zshrc
打开一个新的终端窗口并运行您以前的别名/脚本,它应该可以完美运行。
继续使用 .bash_profile 的其他简单替代方法是将此文件添加到 .zshrc 文件中:
使用这个简单的解决方案,如果您喜欢 zhs,您可以继续添加您的 .bash_prifile。
当我们启动 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.