DEV Community


Posted on • Originally published at on

5 Fancy Shells You Should Have A Try

I love command-line because it makes me more productive.

Most of the time, I live in a Shell in daily work. Shell is simply a command-line interface (CLI) that allows users to interact with the operating system.

Since I have worked with command-line so much of time, I tried many different Shells. I find these 5 Shell worth to be known by more people.

Some of them are already production-ready for daily usage, some are still in rapid development. Maybe you will find your favorite one as your next Shell.

Fish Shell

Fish stands for “the friendly interactive shell”.

It is a smart and user-friendly command line Shell for macOS and Linux family OS.

Many fancy features are included by default, such as syntax highlighting, autosuggest-as-you-type, and fancy tab completions.

The configuration file is located at ~/.config/fish/ We can add custom functions to it. Fish also provides a web interface to configure the file. Run fish_config , the browser will open port 8000 of the machine, and the user can configure fish on the web page.


Fish is Shell with more than ten years, it’s mature and loved by many programmers. I think the most impressive feature is auto-completion.

If you want to use it in daily work, don’t forget oh-my-fish.

Oil Shell

Oil Shell is a new Unix shell. Shell scripting is a domain-specific language for dealing with concurrent processes, text strings, and the file system, it is hard to learn and a nightmare for maintenance.

| Oil is also aimed at people who know say Python or JavaScript, but purposely avoid shell

Since we have so many existing shell programs, you can not ignore them. Oil helps you gradually migrate away from Shell scripting:

  • bin/osh runs your existing shell scripts.
  • bin/oil is a brand new language.

The Oil language is a new dialect which is parsed and evaluated like Python or JavaScript, it’s more concrete than Shell scripting.

The funny thing is, this project is implemented in Python, and then automatically translated to C++ with custom tools.


xonsh is another Python implemented Shell.


xonsh‘s syntax is more like Python, actually, all Python code is runnable in xonsh. xonsh is based on Python, and with additional syntax added that makes calling subprocess commands, manipulating the environment, and dealing with the file system easy.

Unlike Oil, you can not reuse existing Bash scripts in xonsh.


Nushell is a new Shell, written in Rust. It’s inspired by PowerShell in Windows. Rather than thinking of files and services as raw streams of text, Nushell looks at each input as something with structure. In this way, users can make filters with Pipelines easily.


Nushell has not reached release 1.0, but worth having a try for fun.


Zsh is fully compatible with Bash and has extremely rich plug-ins.

Zsh was first released in 1990 and is included in many OS. Actually, Mac OS has already replaced Bash with Zsh as the default shell in Catalina.

If you use Zsh, you won’t miss oh-my-zsh. It’s a community-driven framework for managing your zsh configuration, the repo contains hundreds of powerful plugins and beautiful themes.


Top comments (1)

redoxeon profile image
Michael Harding

nice to see nushell here! I've been using it every day for a while now :)