更改用户时出错

更改用户时出错

每次我su myName更改用户时,我总是会遇到这 3 个错误。

-bash: zstyle: command not found
-bash: autoload: command not found
-bash: compinit: command not found

仅当切换到普通用户时才会发生。我该如何摆脱它?

系统:

  • 拱门 x86_64
  • 终端:Bash(之前尝试使用 zsh,但后来将其删除)

编辑:bash刚刚在控制台 执行时也会出现同样的错误

答案1

如图所示-bash开始输出的每一行,su已尝试启动登录外壳 (1)。

也就是说,将读取 /etc/profile、myName_Home_Dir/.bash_profile、myName_Home_Dir/.bash_login 和 myName_Home_Dir/.profile,并执行在其中找到的命令。

因此,我们可以假设zstyleautoloadcompinit是无意中遗留在上述文件之一中的命令,如果以前使用另一个 shell,很可能是 /etc/profile 或 myName_Home_Dir/.profile 。


(1) 正如指出的吉尔斯su myName在下面的评论中,如果您实际上像您所说的那样,情况不应该是这样,因为su myName应该只启动一个交互的shell(不阅读 和 中的说明/etc/profilemyName_$HOME/.profile。因此,您几乎可能要求,与显式触发登录 shellsu - myName同义。su --login myName

相关内容