Z shell

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Z shell
Screenshot of a zsh session
Original author(s) Paul Falstad[1]
Developer(s) Peter Stephenson, et al.[1]
Stable release 5.0.8 / May 31, 2015; 26 days ago (2015-05-31)
Written in C
Operating system Various
Type Unix shell
License MIT-like[2]
Website www.zsh.org

The Z shell (zsh) is a Unix shell that can be used as an interactive login shell and as a powerful command interpreter for shell scripting. Zsh can be thought of as an extended Bourne shell with a large number of improvements, including some features of bash, ksh, and tcsh.


Paul Falstad wrote the first version of zsh in 1990[3] while a student at Princeton University.[4] The name zsh derives from the name of Yale professor Zhong Shao (then an Assistant Professor at Princeton University) — Paul Falstad regarded Shao's login-id, "zsh", as a good name for a shell.[5][6] Speakers of American English pronounce "Z" as zee, so "Z shell" rhymes with "C shell", a homophone of "seashell".


Z shell's configuration utility for new users

Features of note include:

  • 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
  • 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
  • Fully customizable[7]
  • The built-in where command. Works like the which 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 a shortcuts such as ~mydir, which then behave the way ~ and ~user do.

Attesting to the sheer size of this shell is the famous first sentence of the shell's manual page, which reads "Because zsh contains many features, the zsh manual has been split into a number of sections" and then goes on to list seventeen items.[8]

See also[edit]


  1. ^ a b "The Z Shell Manual" (Version 5.0.0). Sourceforge.net. July 21, 2012. Retrieved September 18, 2012. 
  2. ^ "zsh / Code / [281031] /LICENCE". Paul Falstad. Retrieved February 7, 2015. 
  3. ^ "zsh - a ksh/tcsh-like shell (part 1 of 8)". alt.sources. December 14, 1990. Retrieved September 18, 2012. 
  4. ^ "Z-Shell Frequently-Asked Questions". Sourceforge.net. February 15, 2010. Retrieved September 18, 2012. 
  5. ^ "The Z-Shell (ZSH) Lovers' Page". Guckes.net. c. 2004. Retrieved October 2, 2012. 
  6. ^ "Zsh Mailing List Archive". Zsh.org. August 8, 2005. Retrieved October 2, 2012. 
  7. ^ "Oh My ZSH - Community driven framework with 150+ plugins and 100+ themes". Retrieved May 7, 2014. 
  8. ^ "zsh(1): Z shell - Linux man page". Retrieved July 14, 2014. 

External links[edit]