I watched a video this morning while waiting for my morning wake up juice to finish brewing, and the youtuber was discussing Shells. Now I only am familiar with BASH, but what are the advantages of leaving BASH and going to say Fish, or zsh, or tcsh, etc? I have seen several videos lately while I am watching YouTube on the TV where different youtubers are using the zsh, fish or some other shell.
What shell do you use, and why? For me and my very limited Linux knowledge so far bash has been more than adequate for my purposes.
Shells (not the food) for Linux
Forum rules
Do not post support questions here. Before you post read the forum rules. Topics in this forum are automatically closed 6 months after creation.
Do not post support questions here. Before you post read the forum rules. Topics in this forum are automatically closed 6 months after creation.
Re: Shells (not the food) for Linux
Is it this video? https://www.youtube.com/watch?v=6FHd-rBM2Mc
The scripting languages associated with each shell are all slightly different in syntax. I believe Bash and Zsh are extremely similar and compatible with each other.
I use all three (bash, zsh, fish) on-and-off. Mostly zsh. I also have pwsh installed (Microsoft Windows PowerShell)
I also use different terminal emulators.
I use Bash in Gnome Terminal, Zsh in Kitty and Fish in Alacritty, for maximum variety
It's mostly about their fancy features and their "customization ecosystem" if that makes sense.
There are lots of fancy third-party plugins that add many powerful features.
For example I am using Oh-my-zsh and many plugins, with Powerlevel10K theme.
https://github.com/ohmyzsh/ohmyzsh
https://github.com/romkatv/powerlevel10k
Some of these plugins are amazing.
Colorized output, syntax highlighting for the bash language and available commands, with beautiful icons, and status display.
Extremely powerful autocomplete, and browsing directories on the Terminal becomes almost like using a GUI, where I can choose folders / files with arrow keys from a list that's dynamically displayed to me, and automatically does
Here is a video: https://imgur.com/a/jvp0A7Q
Another excellent feature is auto-completion of the command line parameters of commands:
Here is a video: https://imgur.com/a/aeJbUfP
With bash I'm using Ble.sh and a customized SBP theme, plus "modernized" versions of certain basic utilities like bat instead of cat, colorls instead of ls, ripgrep instead of grep, and so on:
https://github.com/akinomyoga/ble.sh
https://github.com/brujoand/sbp/
Some of the shells have a few of these features "built-in" that's why people prefer them, even if they want to use them "vanilla" without the third-party tools.
For example fish is known for its "friendliness". Helpful suggestions and error messages.
It also has some of the plugin features of the other shells by default (syntax highlighting, auto-suggestions, navigating extendable lists like in the video, etc.) with little to no configuration.
But I believe that its scripting language is significantly different than bash / zsh (which are mostly compatible with each other). It's supposed to be simpler / better.
I haven't dived too far into fish yet!
There are many other reasons and I'm only scratching the surface so far.
The scripting languages associated with each shell are all slightly different in syntax. I believe Bash and Zsh are extremely similar and compatible with each other.
I use all three (bash, zsh, fish) on-and-off. Mostly zsh. I also have pwsh installed (Microsoft Windows PowerShell)
I also use different terminal emulators.
I use Bash in Gnome Terminal, Zsh in Kitty and Fish in Alacritty, for maximum variety
It's mostly about their fancy features and their "customization ecosystem" if that makes sense.
There are lots of fancy third-party plugins that add many powerful features.
For example I am using Oh-my-zsh and many plugins, with Powerlevel10K theme.
https://github.com/ohmyzsh/ohmyzsh
https://github.com/romkatv/powerlevel10k
Some of these plugins are amazing.
Colorized output, syntax highlighting for the bash language and available commands, with beautiful icons, and status display.
Extremely powerful autocomplete, and browsing directories on the Terminal becomes almost like using a GUI, where I can choose folders / files with arrow keys from a list that's dynamically displayed to me, and automatically does
ls
when I change into a directory.Here is a video: https://imgur.com/a/jvp0A7Q
Another excellent feature is auto-completion of the command line parameters of commands:
Here is a video: https://imgur.com/a/aeJbUfP
With bash I'm using Ble.sh and a customized SBP theme, plus "modernized" versions of certain basic utilities like bat instead of cat, colorls instead of ls, ripgrep instead of grep, and so on:
https://github.com/akinomyoga/ble.sh
https://github.com/brujoand/sbp/
Some of the shells have a few of these features "built-in" that's why people prefer them, even if they want to use them "vanilla" without the third-party tools.
For example fish is known for its "friendliness". Helpful suggestions and error messages.
It also has some of the plugin features of the other shells by default (syntax highlighting, auto-suggestions, navigating extendable lists like in the video, etc.) with little to no configuration.
But I believe that its scripting language is significantly different than bash / zsh (which are mostly compatible with each other). It's supposed to be simpler / better.
I haven't dived too far into fish yet!
There are many other reasons and I'm only scratching the surface so far.
Re: Shells (not the food) for Linux
Thanks for the reply, that was very interesting. For my admittedly modest needs and capabilities, I will stick with bash since I sort of understand it.
Re: Shells (not the food) for Linux
Cool.
You can see shells on your system with
Code: Select all
╰─ cat /etc/shells ─╯
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/bin/csh
/usr/bin/csh
/usr/bin/pwsh
/opt/microsoft/powershell/7-lts/pwsh
/bin/zsh
/usr/bin/zsh
/usr/bin/tmux
/usr/bin/fish
Re: Shells (not the food) for Linux
Thank you for that information.