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 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/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 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.
Since we have so many existing shell programs, you can not ignore them.
Oil helps you gradually migrate away from Shell scripting:
bin/oshruns your existing shell scripts.
bin/oilis a brand new language.
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.
Oil, you can not reuse existing Bash scripts in
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.