.profile 与 .zshrc 的执行顺序和目的

JAM*_*JAM 7 .profile zsh shell

几个问题:

  • .profile和的不同目的是.zshrc什么?
  • 当 shell 出现时,首先调用什么?

Dan*_*eck 8

~/.profilezshsh兼容模式下运行时加载,否则读取.zprofile,以及.zshrc交互式和.zlogin登录外壳。

他们的目的是从加载时开始的。正如.zshrc为交互式 shell 加载的那样,在这种情况下设置别名等。

.profile具有附加属性,即它也由其他几个 shell 加载(例如bash,除非它找到更具体的东西;或ksh)以一种或另一种方式加载,因此您可以在此文件中存储多个 shell 的配置。

相关摘录man zshall,重点是我的:

STARTUP/SHUTDOWN FILES
命令首先从/etc/zshenv; [...]

然后从 中读取命令$ZDOTDIR/.zshenv。如果 shell 是登录 shell,则从 中读取命令/etc/zprofile,然后$ZDOTDIR/.zprofile. 然后,如果 shell 是交互式的,则从/etc/zshrc,然后读取命令$ZDOTDIR/.zshrc。最后,如果shell是登录shell,/etc/zlogin并且 $ZDOTDIR/.zlogin 都是读取的。

兼容性
当 zsh 分别作为 sh 或 ksh 调用时,它会尝试模拟 sh 或 ksh;[...]

不执行通常的 zsh 启动/关闭脚本。登录 shell 源,/etc/profile后跟$HOME/.profile. 如果 ENV 环境变量在调用时设置,$ENV则来源于配置文件脚本。的值ENV在被解释为路径名之前经过参数扩展、命令替换和算术扩展。请注意,PRIVILEGED 选项也会影响启动文件的执行。