Z shell
The Z shell (Zsh) is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.
![]() | |
![]() Screenshot of a Zsh session | |
Original author(s) | Paul Falstad[1] |
---|---|
Developer(s) | Peter Stephenson, et al.[1] |
Initial release | 1990 |
Stable release | |
Repository | |
Written in | C |
Operating system | Cross-platform |
Type | Unix shell |
License | MIT-Modern-Variant[3][4] |
Website | www |
History
Paul Falstad wrote the first version of Zsh in 1990[5] while a student at Princeton University.[6] The name zsh derives from the name of Yale professor Zhong Shao (then a teaching assistant at Princeton University) – Paul Falstad regarded Shao's login-id, "zsh", as a good name for a shell.[7][8]
Zsh was at first intended to be a subset of csh for the Commodore Amiga, but expanded far beyond that. By the time of the release of version 1.0 in 1990 the aim was to be a cross between ksh and tcsh – a powerful "command and programming language" that is well-designed and logical (like ksh), but also built for humans (like tcsh), with all the neat features like spell checking, login/logout watching and termcap support that were "probably too weird to make it into an AT&T product".[9]
Zsh is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[10]
In 2019, macOS Catalina adopted Zsh as the default login shell, replacing the GPLv2 licensed version of Bash,[11] and when Bash is run interactively on Catalina, a warning is shown by default.[12]
In 2020, Kali Linux adopted Zsh as the default shell since its 2020.4 release.[13]
Features


Features include:[14]
- Programmable command-line completion that can help the user type both options and arguments for most used commands, with out-of-the-box support for several hundred commands
- Sharing of command history among all running shells
- Extended file globbing allows file specification without needing to run an external program such as find
- Improved variable/array handling
- Editing of multi-line commands in a single buffer
- Spelling correction and autofill of command names (and optionally arguments, assumed to be file names)
- Various compatibility modes, e.g. Zsh can pretend to be a Bourne shell when run as
/bin/sh
- Themeable prompts, including the ability to put prompt information on the right side of the screen and have it auto-hide when typing a long command
- Loadable modules, providing among other things: full TCP and Unix domain socket controls, an FTP client, and extended math functions.
- The built-in
where
command. Works like thewhich
command but shows all locations of the target command in the directories specified in$PATH
rather than only the one that will be used. - Named directories. This allows the user to set up shortcuts such as
~mydir
, which then behave the way~
and~user
do.
Community

A user community website known as "Oh My Zsh" collects third-party plug-ins and themes for the Z shell. As of 2021, their GitHub repository has over 1900 contributors, over 300 plug-ins, and over 140 themes. It also comes with an auto-update tool that makes it easier to keep installed plug-ins and themes updated.[15]
See also
References
- "The Z Shell Manual" (Version 5.8.1). Sourceforge.io. July 21, 2012. Archived from the original on February 20, 2018. Retrieved March 29, 2022.
- "unposted: Release 5.8.1". sourceforge.net. February 15, 2020. Archived from the original on February 17, 2020. Retrieved February 17, 2019.
- "zsh / Code / [281031] /LICENCE". Paul Falstad. Archived from the original on March 2, 2021. Retrieved February 7, 2015.
- "MIT License Modern Variant".
- "zsh - a ksh/tcsh-like shell (part 1 of 8)". alt.sources. December 14, 1990. Retrieved September 18, 2012.
- "Z-Shell Frequently-Asked Questions". Sourceforge.net. February 15, 2010. Archived from the original on March 2, 2021. Retrieved September 18, 2012.
- "The Z-Shell (ZSH) Lovers' Page". Guckes.net. c. 2004. Archived from the original on May 17, 2017. Retrieved October 2, 2012.
- "Zsh Mailing List Archive". Zsh.org. August 8, 2005. Archived from the original on March 2, 2021. Retrieved October 2, 2012.
- "zsh 1.0 announcement". GitHub. 15 April 2021.
- "Native Win32 ports of some GNU utilities". Archived from the original on 2006-02-09. Retrieved 2020-07-25.
- Warren, Tom (June 4, 2019). "Apple replaces bash with zsh as the default shell in macOS Catalina". The Verge. Archived from the original on June 10, 2019. Retrieved June 13, 2019.
- "Use zsh as the default shell on your Mac - Apple Support". Archived from the original on 2 December 2019. Retrieved 1 July 2019.
- "Kali Linux 2020.4 Release (ZSH, Bash, CME, MOTD, AWS, Docs, Win-KeX & Vagrant) | Kali Linux Blog". Kali Linux. Retrieved 2021-03-03.
- "Z-Shell Frequently-Asked Questions". zsh.sourceforge.net. Archived from the original on 2021-03-02. Retrieved 2020-03-04.
- Russel, Robby (23 March 2016). "d'Oh My Zsh". freeCodeCamp. Retrieved 18 August 2020.