终端模拟器中的 shell 错误

终端模拟器中的 shell 错误

我在 Fedora 桌面上选择的 shell (zsh) 遇到了一个奇怪的问题。当我打开终端模拟器时,shell 是 bash,但在我的 shell 中/etc/passwd是以下内容:

[frank@fedora ~]$ grep frank /etc/passwd
frank:x:1000:1000:Frank:/home/frank:/usr/bin/zsh
[frank@fedora ~]$ whoami
frank

这种情况发生在每个已安装的终端仿真器(gnome-terminal、alacritty、konsole)中,并且终端仿真器集中没有特定于 shell 的设置。同一台计算机上的其他用户没有此问题。所以我认为这是一个用户特定的设置。

我尝试重命名~/.profile,甚至~/.zshrc重命名~/.bashrc,但没有成功。

这种情况只发生在我本地。当我 ssh 进入机器时,我的 shell 应该是 zsh 。

答案1

显然我删除后并没有注销~/profile。所以SHELL变量仍然被设置。发生的事情~/.profile如下:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

并在~/.bashrc /etc/bashrc来源中,有一个export SHELL=/usr/bin/bash 删除上述内容后,.profile一切正常。抱歉这个愚蠢的问题:/

相关内容