我已经在 Fedora 和 Gnome 上使用 Bash 很长时间了,最近改用 Arch Linux、Plasma 和 ZSH。我设置了 zsh、file、used chsh -s $(which zsh)
,并且它有效。但是,每次运行 Konsole bash 都会自动运行,我必须手动调用zsh
.这是我所知道的:
echo $SHELL
返回/bin/bash
cat /etc/passwd | grep $LOGNAME
将我的 shell 显示为 /usr/bin/zsh
当我登录到 tty(非图形)时,ZSH 默认运行。
更新 1:“首选项/配置/常规”选项卡没有“命令”选项,并且用户设置中没有与我的 shell 相关的 GUI 选项。
答案1
看Settings>Configure Konsole>Profiles
。
编辑相关配置文件并更改Command
字段。
答案2
在我看来,KDE 和 Konsole应该尊重默认选项。为了强制执行,您可以使用这个小脚本:
$ sudo vi /usr/local/bin/shell.sh
#!/bin/sh
PSHELL=$(getent passwd $USER|cut -d: -f7)
eval "$PSHELL"
允许它运行:
$ sudo chmod +x /usr/local/bin/shell.sh
然后去你的康索尔轮廓
Settings>Configure Konsole>Profiles>Edit Profile>General Tab>Command
改成/bin/bash
/usr/local/bin/shell.sh
从现在开始,如果您使用chsh -s /bin/someshell
,康索尔会尊重你的选择。
要查看可用的 shell,请使用:
cat /etc/shells
示例输出:
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/bin/zsh
/usr/bin/zsh
注1:不建议shell.sh
添加/etc/shells
。让它只是为了康索尔配置。
注 2:如果您愿意,可以将其保存在不同的文件夹中。例如,如果您只有一个用户,那么一个好地方就是~/bin/shell.sh
现在您甚至不需要 sudo。