我刚刚在远程服务器上安装了 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
.因此,所有交互式登录都将调用该文件夹中的内容。如果您希望配置文件脚本的范围仅限于一个帐户,您必须
将该脚本移至
~/.profile
或~/.bash_profile
(对于 bash 用户),或添加登录以
vk.sh
根据登录用户跳过执行。