Z shell
Encyclopedia
The Z shell is a Unix shell
that can be used as an interactive login shell
and as a powerful command interpreter for shell script
ing. Zsh can be thought of as an extended Bourne shell
with a large number of improvements, including some features of bash, ksh
, and tcsh
.
.
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.
Unix shell
A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems...
that can be used as an interactive login shell
Shell (computing)
A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
and as a powerful command interpreter for shell script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
ing. Zsh can be thought of as an extended Bourne shell
Bourne shell
The Bourne shell, or sh, was the default Unix shell of Unix Version 7 and most Unix-like systems continue to have /bin/sh - which will be the Bourne shell, or a symbolic link or hard link to a compatible shell - even when more modern shells are used by most users.Developed by Stephen Bourne at AT&T...
with a large number of improvements, including some features of bash, ksh
Korn shell
The Korn shell is a Unix shell which was developed by David Korn in the early 1980s and announced at USENIX on July 14, 1983. Other early contributors were AT&T Bell Labs developers Mike Veach, who wrote the emacs code, and Pat Sullivan, who wrote the vi code...
, and tcsh
Tcsh
tcsh is a Unix shell based on and compatible with the C shell . It is essentially the C shell with programmable command line completion, command-line editing, and a few other features.-History:...
.
Origin
The first version of zsh was written by Paul Falstad in 1990 when he was a student at Princeton UniversityPrinceton University
Princeton University is a private research university located in Princeton, New Jersey, United States. The school is one of the eight universities of the Ivy League, and is one of the nine Colonial Colleges founded before the American Revolution....
.
Etymology
The name zsh derives from Yale professor Zhong Shao, then a teaching assistant at Princeton University. Paul Falstad thought that Shao's login name, "zsh", was a good name for a shell.Features
Features of note include:- Programmable command line completionCommand line completionCommand line completion is a common feature of command line interpreters, in which the program automatically fills in partially typed commands....
that can help the user type both options and arguments for most used commands, with out-of-the-boxOut of the boxOut of the box is the term used to denote items, functionalities, or features that do not require any additional installation. In addition to being used for tangible products, the phrase is often used in a less literal sense for software, which may not be distributed in an actual box but offer...
support for several hundred commands - Sharing of command historyCommand HistoryCommand history is a feature in many operating system shells, computer algebra programs, and other software that allows the user to recall, edit and rerun previous commands....
among all running shells - Extended file globbing allows file specification without needing to run an external program such as findFindIn Unix-like and some other operating systems, find is a command-line utility that searches through one or more directory trees of a file system, locates files based on some user-specified criteria and applies a user-specified action on each matched file...
- Improved variableVariable (programming)In computer programming, a variable is a symbolic name given to some known or unknown quantity or information, for the purpose of allowing the name to be used independently of the information it represents...
/array handling - Editing of multi-line commands in a single buffer
- Spelling correctionSpell checkerIn computing, a spell checker is an application program that flags words in a document that may not be spelled correctly. Spell checkers may be stand-alone capable of operating on a block of text, or as part of a larger application, such as a word processor, email client, electronic dictionary,...
- Various compatibility modes, e.g. zsh can pretend to be a Bourne shellBourne shellThe Bourne shell, or sh, was the default Unix shell of Unix Version 7 and most Unix-like systems continue to have /bin/sh - which will be the Bourne shell, or a symbolic link or hard link to a compatible shell - even when more modern shells are used by most users.Developed by Stephen Bourne at AT&T...
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 TCPTransmission Control ProtocolThe Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
and Unix domain socketUnix domain socketA Unix domain socket or IPC socket is a data communications endpoint for exchanging data between processes executing within the same host operating system. While similar in functionality to...
controls, an FTPFile Transfer ProtocolFile Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...
client, and extended math functions - Fully customizable
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.