If Bash is your default shell, you can install Fish to try its superb auto suggestions and the tab key, while leaving Bash as your default shell. These auto suggestions do not only work for your command line history but also for file names even when your first letters you type are in different order in the file name (For example, I know that I want to edit a file with the word work in it and start typing the word work and press tab key, but it turns out that the word does start instead with the word personal, Fish is still able to suggest the real file name to edit : personal_and_work_todo.txt). Fish has saved me a lot of typing time. And if you need Bash for a moment (Fish will complain about certain * usage), then temporarily exiting Fish or typing bash is an option.
After installing Fish, run the fish_config command to configure it via a local session in your web browser.
I’ve actually used Fish on my old system. I didn’t use it as daily driver. Now I’ve installed Manjaro, and it uses ZSH by default. And now I can compere them, and oh my, Fish auto-completion is way better. it’s interactive, showing command names and help on them. and allow to select completion by arrows, not [Tab].
Only downside of fish is that it is incompatible with Bash. In Zsh you could copy-paste bash commands from tutorials and they would just work, but in Fish you need ot alter them, for example $(cmd) is just (cmd) in Fish.
I was about to make a comment along the lines of “I’ve already learned how to do command line things, my OS already comes with a few shells, why SHOULD I take the time to learn a new shell?” — but then I reflected on this and realized something: it’s the same thing as saying “Windows comes with Explorer/Edge, why SHOULD I go through the trouble to pick up a new web browser?” And yet, I unquestioningly download Firefox first thing when I install a new OS, hmm.
I use nushell for my terminal/console (alacritty). For POSIX compability, mksh; I set it as SHELL so programs, which expect/assume POSIX, use it instead of nu. This is the way to have best of both worlds.
It is because it departs from POSIX that it is good; I recognize the syntax for some functionality is cumbersome and hard to remember though. There are similarities like command names and piping still…
I use NixOS and home-manager, so for switching I just