Switching to Fish Shell

Because there is no reason to do so. You gain nothing from chsh. So you may as well keep Bash as your user’s shell (as it is the most sane default), and just edit the terminal emulator settings to launch whatever shell you want. This is according to the KISS principle.

If you mess up some config and your GUI session does not boot and you end up in the TTY, or you can’t boot at all and have to chroot, you’ll have Bash as your user’s shell – which is very predictable and makes troubleshooting easier. In such cases, from my experience, any other shell just gets in the way (especially if you ask others for help). Of course, you can just as easily launch a Bash session from within a Fish session. But having sane defaults is just simpler.

That’s never a problem. Any Bash script will work regardless of what your user’s shell is, because each script has the interpreter directive as the first line (#!). So whenever the user start a Bash script, an non-interactive Bash session is launched within which the script runs (which has its own environment). After the script ends, the user is returned to his old interactive shell, regardless of what shell he is using.

Just don’t change the symlink /bin/sh – on Arch, it should always point to bash.

That said, Fish is a really bad shell, Zsh is much better. Of course, that’s just a personal preference, you may feel different about it.


And I just realised I’ve already written the same thing a yeah ago. In a couple of months someone will ask: “why not chsh to Fish?” and I’ll write the same thing again. :slight_smile:

1 Like

Thanks @flyingcakes and @Kresimir for such a good explanation :slight_smile:

I am experimenting with fish and zsh atm, but yeah, as you suggested , I am calling them or making new profile just for them. Still main one is bash

Thank you kindly for this suggestion.

1 Like