exec zsh
当从命令行使用eg启动我的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
开始时zsh
,我想跳过处理所有/etc/*
文件(除了/etc/zshenv
我认为我不能作为非root用户跳过?),并且仅有的解析我的主目录中我自己的初始化文件。
exec zsh
当我从命令行调用时如何执行此操作?
答案1
取消设置该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
将不会被获取。