我在 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
一切正常。抱歉这个愚蠢的问题:/