Z shell
![]() 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 | Various |
Type | Unix shell |
License | MIT-like[3] |
Website | www |
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.
macOS Catalina, released in October 2019, adopted Zsh as the default shell, replacing Bash.[4][5]
History
Paul Falstad wrote the first version of Zsh in 1990[6] while a student at Princeton University.[7] 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.[8][9]
Features
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Zsh-new-user.png/220px-Zsh-new-user.png)
Features include[10]:
- 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 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.
Oh My Zsh
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Oh_My_Zsh_logo.png/220px-Oh_My_Zsh_logo.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Zsh-agnoster.png/220px-Zsh-agnoster.png)
A user community website called "Oh My Zsh" collects third-party plug-ins and themes for the Z shell.[11] As of 2019, their GitHub repository has over 1,350 contributors, over 250 plug-ins, and over 140 themes, of varying quality. It also comes with an auto-update tool that makes it easier to keep installed plug-ins and themes updated.[12]
See also
References
- ^ a b "The Z Shell Manual" (Version 5.0.0). Sourceforge.net. July 21, 2012. Retrieved September 18, 2012.
- ^ "unposted: Release 5.8". sourceforge.net. February 15, 2020. Retrieved February 17, 2019.
- ^ "zsh / Code / [281031] /LICENCE". Paul Falstad. Retrieved February 7, 2015.
- ^ "Use zsh as the default shell on your Mac - Apple Support". Retrieved 1 July 2019.
- ^ Warren, Tom (June 4, 2019). "Apple replaces bash with zsh as the default shell in macOS Catalina". The Verge. Retrieved June 13, 2019.
- ^ "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. Retrieved September 18, 2012.
- ^ "The Z-Shell (ZSH) Lovers' Page". Guckes.net. c. 2004. Retrieved October 2, 2012.
- ^ "Zsh Mailing List Archive". Zsh.org. August 8, 2005. Retrieved October 2, 2012.
- ^ "Z-Shell Frequently-Asked Questions". zsh.sourceforge.net. Retrieved 2020-03-04.
- ^ "Oh My ZSH - Community driven framework with 150+ plugins and 100+ themes". Retrieved May 7, 2014.
- ^
"robbyrussell/oh-my-zsh".
A delightful community-driven (with 1,000+ contributors) framework for managing your zsh configuration. Includes 200+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, php, python, etc), over 140 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.