多用户环境,SSH ZSH - 未找到命令:shopt

多用户环境,SSH ZSH - 未找到命令:shopt

我刚刚在远程服务器上安装了 ZSH,我们是 2 个“管理员”。我将默认 shell 切换为 ZSH,使用chsh -s $(which zsh).echo $SHELL给出证明它的输出/usr/bin/zsh。但是,当我打开 ssh 会话时,我收到如下错误:

/etc/profile.d/vk.sh:30: command not found: shopt

此错误仅在启动时出现,并且仅在打开 ssh 会话时看到一次。

据我了解,另一位管理员使用自己的别名放置了一些自定义脚本,并shopt -s histappend在那里使用命令。

我的问题是,为什么我的 SSH ZSH 会话在启动时调用该脚本?难道它的范围不应该只限于我的个人资料吗?

对我来说,在不影响/接触他的东西的情况下运行 ZSH 的优雅解决方案是什么?我应该要求他把那个东西移到他的主目录中的其他地方吗?

答案1

/etc/profile文件包含系统范围的配置文件设置。在该文件中,许多发行版都在/etc/profile.d.因此,所有交互式登录都将调用该文件夹中的内容。如果您希望配置文件脚本的范围仅限于一个帐户,您必须

  1. 将该脚本移至~/.profile~/.bash_profile(对于 bash 用户),或

  2. 添加登录以vk.sh根据登录用户跳过执行。

相关内容