我正在尝试将鱼设置为我的默认外壳。它通过 apt-get 安装在系统上,并列在/etc/shells:
> which fish
/usr/bin/fish
> grep fish /etc/shells
/usr/bin/fish
Run Code Online (Sandbox Code Playgroud)
我曾经chsh从 Bash 切换到 Fish:
> chsh -s /usr/bin/fish
Run Code Online (Sandbox Code Playgroud)
我的默认外壳已更改为/etc/passwd:
> grep "myusername" /etc/passwd
myusername:x:1000:1000:Oh Spite,,,:/home/myusername:/usr/bin/fish
Run Code Online (Sandbox Code Playgroud)
惊人的。然后我注销并重新启动。登录 shell(例如,虚拟 TTY 和 SSH)现在启动 fish。
然而,当我使用 gnome-terminal 或 urxvt 启动终端时,会启动一个 bash 会话。此外,该SHELL变量仍设置为/bin/bash。
有趣的是,终结者确实使用 fish 作为默认 shell。但即使在那个会话SHELL中设置为/bin/bash. 如果我从 Terminator 启动 urxvt,则 urxvt 会启动 Bash 会话。
我还需要做什么才能将我的默认 shell 更改为 fish?
(另请参阅此问题,但这不是重复的,因为我已按照这些说明进行操作并重新启动。现在很多次了。)