如何避免解析 /etc/* 文件

Ame*_*ina 4 zsh

exec zsh从命令行启动我的 shell 时,如何让它解析任何 /etc/ 文件?

在 zsh 指南读到,当用户启动 zsh shell 时,它会按顺序处理以下 init 文件:

# Every shell. Always
/etc/zshenv

# Every shell. Avoidable if passing flag -f to zsh
~/zshenv

# If it's a login shell.
/etc/zprofile
~/zprofile

# If it is an interactive shell
/etc/zshrc
~/zshrc

# If it is a login shell
/etc/zlogin
~/zlogin
Run Code Online (Sandbox Code Playgroud)

开始时zsh,我想跳过处理所有/etc/*文件(除了/etc/zshenv我假设我不能作为非 root 用户跳过?),并且在我的主目录中解析我自己的 init 文件。

从命令行调用时如何执行此操作exec zsh

小智 7

取消设置GLOBAL_RCS选项。为此,请添加unsetopt GLOBAL_RCS/etc/zshenv$ZDOTDIR/.zshenv或运行zsh -o NO_GLOBAL_RCS。请注意,如果$ZDOTDIR未设置,$HOME则改为使用。

GLOBAL_RCS未设置时,/etc/zprofile, /etc/zshrc,/etc/zlogin/etc/zlogout将不会被引用。