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