Member-only story

Fish vs. Zsh vs. Bash and Why You Should Switch to Fish

There are two kinds of *nix users: the cautious and the adventurous

Siddharth Mohanty
Better Programming
6 min readMay 15, 2020

Photo by James Wainscoat on Unsplash

Here’s a fact, most developers love Unix and Unix-like (Linux-based) operating systems such as macOS, Ubuntu, etc. They are stable, powerful, highly customizable, and they have the mighty Unix Shell.

What Is UNIX Shell?

A shell is an interface to the underlying operating system. It allows you to execute operations using text and commands, and it provides users with advanced features like being able to create scripts.

Unix Shell is a powerful tool that allows programmers to accomplish complex tasks with just a few words. There are a lot of widely available Shells such as Bourne Shell, C Shell, etc.

I have particularly used Bash, Zsh, and fish shells, and here are my thoughts on why switching to fish, or even Zsh, is one of the best things you could do to make your programming experience more pleasant.

A One Minute Introduction to Bash, Zsh, and fish

Bash

Bash is the most common Linux shell out there. If you open up a terminal on Mac (until macOS Mojave), or if you’ve used Linux before, you’ve seen Bash.

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Siddharth Mohanty

Written by Siddharth Mohanty

A keen Big Data and Java Developer | Open-Source Contributor

Responses (5)

What are your thoughts?

I used the fish for 3 or 4 months. It's pretty and friendly. It provides excellent abilities for work with history. But the main disadvantage that it has a different syntax, so, you forced to rewrite all your aliases and helpers, and have got…

61

I wish FIsh had a built-in syntax matcher for Bash,
theres a lot of times when I run a bash script within Fish shell, I get errors with shell expansion, aliases, etc
fish has a different syntax for variables which is real pain if youre used to bash

5

Bash is the most common Linux shell out there. If you open up a terminal on Mac (until macOS Mojave)

Why 'untill macOS Mojave' ?

2