Answers:
这是每个文件倾向于包含的内容的非排他性列表:
.zshenv始终是源程序,因此它通常包含导出的变量,这些变量应可供其他程序使用。例如$PATH,$EDITOR和$PAGER经常被设定.zshenv。此外,您还可以设置$ZDOTDIR在.zshenv指定的zsh的其余配置中的其他位置。.zshrc用于交互式外壳程序配置。您可以使用setopt和unsetopt命令在此处设置交互式外壳程序的选项。您还可以加载外壳模块,设置历史记录选项,更改提示,设置zle和完成等等。您还设置了仅在交互式外壳程序中使用的任何变量(例如$LS_COLORS)。.zlogin源于登录shell的开始。该文件通常用于使用启动X startx。某些系统在启动时启动X,因此此文件并不总是非常有用。.zprofile基本上与之前相同,.zlogin只是直接在.zshrc来源之前而不是之后直接来源。根据zsh文档,“ .zprofile对于ksh爱好者来说,它是`.zlogin'的替代方案;尽管可以根据需要当然也可以将两者一起使用。”.zlogout 有时用于清除和重置终端。 您应该浏览随机的Github用户的配置文件,以更好地了解每个文件应包含的内容。
man zshall有关详细信息,请参见)。
$LANG并且$LC_ALL去了?
.zshenv→[ .zprofile如果登录]→[ .zshrc如果是交互式的]→[ .zlogin如果登录]→[ .zlogout有时]。
我认为,这里列出了每个文件应该/不应该包含的内容:
[每次阅读]
它始终是源程序,因此应设置需要经常更新的环境变量。PATH(或其关联的对应路径)是一个很好的例子,因为您可能不想重新启动整个会话以使其更新。通过在该文件中进行设置,重新打开终端仿真器将启动更新了PATH值的新Zsh实例。
但是请注意,即使启动Zsh来运行单个命令(带有-c选项),也可以通过诸如之类的其他工具读取该文件make。您应该非常小心,不要修改标准命令的默认行为,因为它可能会破坏某些使用它们的工具(例如,通过设置别名)。当然,您知道自己在做什么并不是禁止的。
[登录时阅读]
我个人将该文件视为,.zshenv但对于应仅设置一次或不需要经常更新的命令和变量:
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))")的配置,因为它可能需要一些时间才能执行。如果修改该文件,则可以通过将当前的shell替换为新的shell作为登录shell来获取配置更新:
exec zsh --login
[互动阅读]
我在这里放置了仅用于交互式使用的所有内容:
[登录时阅读]
该文件类似于.zshprofile,但在读取之后.zshrc。我认为此时外壳已完全安装好。
因此,我用它来启动不修改外壳行为的外部命令(例如,登录管理器)。
[注销时阅读] [在登录shell中]
在这里,您可以在登录时清除终端或任何其他资源设置。
.zshenv.zshenv.zprofile.zshrc.zlogin.zlogout