When comparing zsh vs Xonsh, the Slant community recommends zsh for most people. In the question“What are the best Bash replacements?”zsh is ranked 1st while Xonsh is ranked 4th. The most important reason people chose zsh is:

When you start typing a command, you can press the tab key and it will complete the command you started typing. If there are multiple potential commands, you can choose which one to run by simply pressing tab again. Case-insensitive by default, too.

Ranked in these QuestionsQuestion Ranking

Pros

Pro

Interactive autocompletion

When you start typing a command, you can press the tab key and it will complete the command you started typing. If there are multiple potential commands, you can choose which one to run by simply pressing tab again. Case-insensitive by default, too.

Pro

Powerful community-driven tools via oh-my-zsh

Oh-my-zsh is a community-driven framework, which helps users with their zsh configuration and plugins. 400 plugins, 200+ themes and auto-updates to always be up to date.

Pro

Autocomplete for options

Zsh intelligently determines if you are trying to complete a file path or an option, and pressing tab after typing - will reliably bring up a list of options.

Pro

Good bash compatibility

Things you've learned using bash will largely apply to zsh. Scripts written in bash will run with little to no modification.

Pro

Shared histories

If you spend a lot of time in the terminal, most likely you will have several terminal windows open. Zsh has great support for command line histories. The history is unique and shared through all the different instances.

Pro

Smart escaping

Zsh can determine the context of the command you're typing in and determine if it should escape characters if you're typing in a URI.

Pro

Recursive globbing

ls **/*.log for example is supported by ZSH.

Pro

Pipe output to a temporary file:

Some programs don't support loading from stdin, but ZSH can store outputs to a temporary file, example: unzip =(curl http://example.com/someZipFile.zip)

Pro

Great install procedure

Zsh will take you through a procedure which is roughly 30 minutes in length before during install. Through this procedure it asks you to set different options and customize the shell the way you want it to. Most of these settings are also found in other shells, but to customize them you have to go dig configuration files while zsh allows you to do it in the beginning.

Pro

Faster spelling correction

Pro

Easy to understand, Python-like syntax

Xonsh uses a syntax which is a superset of Python 3.4 plus some additional shell primitives. Because of the similarity to Python, which is famously an easy to understand programming language, the syntax of Xonsh is pretty easy to grasp too, even more so for Python programmers.

Pro

Cross platform support

Xonsh has native cross-platform support.

Pro

Command history on steroids - including output

Xonsh has one feature that can be considered particularly unique. It stores not just the commands you type, but their output, and doing a search on your history (configurably) can search the output as well.

Ad

Cons

Con

Defaults are unfriendly for a long-time bash user

Expect to find a configuration you like (or use the configuration utility) to set reasonable preferences. Default zsh interaction is different enough to make you stutter through what used to be familiar workflows.

Con

Requires a lot of configuration to be used fully

Zsh requires a lot of tinkering with configuration files and downloading plugins in order to be able to do tasks which other shells may be able to do out of the box.

Con

Not fully compatible with bash

There is a small chance you may have a bash script that doesn't work in zsh, although this is very very rare and most developers will never run into any issues.

No cons yet!

Alternative Products

Each month, over 2.8 million people use Slant to find the best products and share their knowledge. Pick the tags you’re passionate about to get a personalized feed and begin contributing your knowledge.