Z shell
From Infogalactic: the planetary knowledge core
Screenshot of a zsh session
|
|
Original author(s) | Paul Falstad[1] |
---|---|
Developer(s) | Peter Stephenson, et al.[1] |
Initial release | 1990 |
Stable release | 5.1.1 / September 11, 2015 |
Written in | C |
Operating system | Various |
Type | Unix shell |
License | MIT-like[2] |
Website | www |
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.
Contents
Origin
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".
Features
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 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 a shortcuts such as
~mydir
, which then behave the way~
and~user
do.
See also
References
- ↑ 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.