I'm trying to set fish as my default shell. It's installed on the system through apt-get and is listed in /etc/shells:
> which fish
/usr/bin/fish
> grep fish /etc/shells
/usr/bin/fish
I used chsh to switch from Bash to fish:
> chsh -s /usr/bin/fish
And my default shell has been changed in /etc/passwd:
> grep "myusername" /etc/passwd
myusername:x:1000:1000:Oh Spite,,,:/home/myusername:/usr/bin/fish
Awesome. Then I logged out and rebooted. Login shells (e.g., virtual TTYs and SSH) now start fish.
And yet, when I start a terminal with either gnome-terminal or urxvt, a bash session is started. Additionally, the SHELL variable is still set to /bin/bash.
Interestingly, Terminator does use fish as the default shell. But even in that session SHELL is set to /bin/bash. If I start urxvt from Terminator, urxvt starts a Bash session.
What else do I need to do to change my default shell to fish?
(See also this question, but this is not a duplicate because I have followed those instructions and rebooted. Many times now.)


fishas the default shell for terminal ? also whats the output ofgetent passwd myusernamenow ? – heemayl Aug 18 '15 at 21:33getent passwd myusernameis exactly the same as thegrepoutput in the question (I forgot aboutgetent.) – ohspite Aug 18 '15 at 21:36SHELLis set to/usr/bin/fishin them. It is non-login shells that start Bash (except for Terminator). – ohspite Aug 18 '15 at 22:46