zsh

Updated: 2021-11-23

https://github.com/zsh-users/zsh

zsh vs bash

Zsh is an extended Bourne shell, just like bash. But Zsh's syntax is not completely compatible with bash (zsh breaks POSIX compliance.)

Config

bash reads .bashrc in non-login interactive shells (but macOS starts a login shell in terminals by default), .profile or .bash_profile in login shells, and .inputrc.

Zsh reads .zshrc in interactive shells and .zprofile in login shells.

Default Shell on macOS and other OS

In 2019, macOS Catalina adopted Zsh as the default login shell

macOS ships with bash 3.x, GPL v2; newer bash use GPLv3+; zsh is using MIT like license.

In 2020, Kali Linux (Debian-derived, primarily for digital forensics and penetration testing) adopted Zsh as the default shell.

ohmyzsh

https://github.com/ohmyzsh/ohmyzsh

Suggested plugins to enable:

alias-tips
common-aliases
extract
fasd
history
tmux
zsh-completions