Fish: A better alternative to Bash in Linux?
Bash is a fantastic tool in Linux, but there's room for improvement in everything. Fish is an alternative shell for Linux that some might consider to be a significant upgrade to what Bash has to offer.
Derrik Diener reports for Make Tech Easier:
Have you ever wanted to get away from Bash when using Linux? It’s understandable. Though Bash is often praised as being a great shell, it has a lot of shortcomings. Enter Fish shell. It’s a great alternative with tons of neat features. The most notable being predictive type. Other handy features include syntax highlighting, searchable command history and auto suggestions.
Fish is very user friendly. Just start typing. It’ll guess. Want to type in the pacman command? Chances are it’ll fill it out for you. All you’ve got to do is hit the right arrow on your keyboard and let it auto-complete. This feature is very powerful. It doesn’t just work with system commands (like packagers) but with any command or terminal program available. If it’s installed on your system in some way, Fish will find it and let you know about it.
Fish really doesn’t need that much configuration. From the start everything should be set up exactly the way you need. There is, however, one small tweak that can make your Fish experience that much better: Disabling the startup message. Though helpful, it can get pretty annoying to see every single time you open a new terminal window.
While Bash is a good shell, Fish is better. It makes up for a lot of the shortcomings Bash and other shells have. The auto-complete function is a lifesaver, and the robust configuration options are a welcome addition. The shell is very fast and light on it’s feet. Sure, there are other alternatives, and maybe even some that boast equivalent features, but where Fish wins is its simplicity. It’s easy to set up, easy to configure and easy to get stuff done.
The article about Fish replacing Bash caught the attention of Linux redditors, and they weren't shy about sharing their opinions about it:
Formegadriverscustom: "Bash might have shortcomings, but lack of autocompletion is not one of them. Really, none of these fancy, newfangled shells with all their bells and whistles really convinces me. If I ever move away from Bash, it'll be to something simpler, like mksh :)"
Johnny0055: "I like how fish can automatically make completions by reading man pages, so it can often generate completions for programs that have no specified completions. I myself use fish mostly because it has better defaults, and a simpler scripting language."
3dank5maymay: "As for scripting languages, bash really sucks. But regardless of what shell you use as an interactive shell, you can write your scripts in any language, so bashs poor scripting syntax isn't really relevant for my choice of an interactive shell."
Cutol: "Have you tried Fish? Ive never been able to get Bash's autocomplete to be anywhere near as nice. I love how Fish remembers recent completions and suggests yhose first, instead of cycling through choices in order. "
Nomto: "Some ways in which fish's completion is superior to bash's:
If you start auto-completing in the middle of a word, it will intelligently complete to the actual word. The last matching command is shown grayed-out as you type, and you can easily select it. The pager is pretty nice.
Also one advantage of fish is that it's not set in stone, so if you have a sensible feature request you can submit it. Recently there was a very useful builtin "string" that got in."
Kamiru: "Fish is actually simpler than bash. For one it doesn't have many buildins. Another example is how doesn't have aliases, all aliases are just functions."
Rodents: "Fish has way superior completion to Bash, the problem is that a lot of small utilities only come with Bash, not Fish completion."
Sthuck: "Fish is incredibly nice, but the lack of support of for POSIX sh kills any chance I would use it at my day to day job."
UGMadness: "I consider myself a novice when it comes to Unix-like OSes, but Fish has definitely made the experience much more fun and convenient for me since I started using it. The intelligent autocompletion and ease of configuration is a godsend. It made me start loving the command line, something I would've never tohught it would be possible before."
Oldsquidy: "I used fish for a while but moved to ZSH after a network outage which forced me to use a TTY, fish decided that it could run one command but then die. Never went back after that."