Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Z shell
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Unix shell}} {{Infobox software | name = Z shell | logo = File:Z Shell Logo Color Vertical.svg | screenshot = Zsh 5.9 screenshot.webp | screenshot size = 250px | caption = Screenshot of a Zsh session | author = Paul Falstad<ref name=ZshManual>{{cite web|url=https://zsh.sourceforge.io/Doc/Release/Introduction.html#Author|title=The Z Shell Manual|type=Version 5.8.1|publisher=Sourceforge.io|date=July 21, 2012|access-date=March 29, 2022|archive-date=February 20, 2018|archive-url=https://web.archive.org/web/20180220011558/http://zsh.sourceforge.net/Doc/Release/Introduction.html#Author|url-status=live}}</ref> | developer = Peter Stephenson, et al.<ref name=ZshManual/> | released = {{Start date and age|1990}} | latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}} |df=yes}} | programming language = [[C (programming language)|C]] | operating system = [[Cross-platform]] | genre = [[Unix shell]] | license = [[MIT License|MIT-Modern-Variant]]<ref>{{cite web|url=http://sourceforge.net/p/zsh/code/ci/master/tree/LICENCE|title=zsh / Code / [281031] /LICENCE|publisher=Paul Falstad|access-date=February 7, 2015|archive-date=March 2, 2021|archive-url=https://web.archive.org/web/20210302213122/https://sourceforge.net/p/zsh/code/ci/master/tree/LICENCE|url-status=live}}</ref><ref>{{cite web|url=https://spdx.org/licenses/MIT-Modern-Variant.html|title=MIT License Modern Variant}}</ref> | website = {{url|https://www.zsh.org/|zsh.org}} }} The '''Z shell''' ('''Zsh''') is a [[Unix shell]] that can be used as an [[interactive]] login [[shell (computing)|shell]] and as a [[command-line interpreter|command interpreter]] for [[shell script]]ing. Zsh is an extended [[Bourne shell]] with many improvements, including some features of [[Bash (Unix shell)|Bash]], [[KornShell|ksh]], and [[tcsh]]. Zsh was created by Paul Falstad in 1990 while he was a student at [[Princeton University]]. It combines features from both [[KornShell|ksh]] and [[tcsh]], offering functionality such as programmable [[command-line completion]], extended file [[globbing]], improved variable/array handling, and themeable [[shell prompt|prompts]]. Zsh is available for [[Microsoft Windows]] as part of the [[UnxUtils]] collection and has been adopted as the default shell for [[macOS]] and [[Kali Linux]]. The "Oh My Zsh" user community website provides a platform for third-party plug-ins and themes, featuring a large and active contributor base. == History == Paul Falstad wrote the first version of Zsh in 1990<ref>{{cite web|url=http://groups.google.com/group/alt.sources/msg/936c7876941058ed|title=zsh - a ksh/tcsh-like shell (part 1 of 8)|publisher=alt.sources|date=December 14, 1990|access-date=September 18, 2012}}</ref> while a student at [[Princeton University]].<ref>{{cite web|url= http://zsh.sourceforge.net/FAQ/zshfaq01.html#l3|title= Z-Shell Frequently-Asked Questions|publisher= Sourceforge.net|date= February 15, 2010|access-date= September 18, 2012|archive-date= March 2, 2021|archive-url= https://web.archive.org/web/20210302213122/http://zsh.sourceforge.net/FAQ/zshfaq01.html#l3|url-status= live}}</ref> The name ''zsh'' derives from the name of [[Yale University|Yale]] professor Zhong Shao (then a teaching assistant at Princeton University) β Paul Falstad regarded Shao's [[login name|login]], "zsh", as a good name for a shell.<ref>{{cite web|url= http://www.guckes.net/zsh/lover.html|title= The Z-Shell (ZSH) Lovers' Page|publisher= Guckes.net|date= c. 2004|access-date= October 2, 2012|archive-date= May 17, 2017|archive-url= https://web.archive.org/web/20170517213919/http://www.guckes.net/zsh/lover.html|url-status= live}}</ref><ref>{{cite web|url= http://www.zsh.org/mla/users/2005/msg00951.html|title= Zsh Mailing List Archive|publisher= Zsh.org|date= August 8, 2005|access-date= October 2, 2012|archive-date= March 2, 2021|archive-url= https://web.archive.org/web/20210302213117/https://www.zsh.org/mla/users/2005/msg00951.html|url-status= live}}</ref> Zsh was at first intended to be a subset of [[C Shell|csh]] for the [[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 {{Ndash}}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".<ref name="zsh-1.0">{{ cite web | url = https://github.com/llua/zsh-1.0 | title = zsh 1.0 announcement | website = [[GitHub]] | date = 15 April 2021 }}</ref> Zsh is available for [[Microsoft Windows]] as part of the [[UnxUtils]] collection of [[Native (computing)|native]] [[Windows API|Win32]] [[porting|ports]] of common [[GNU]] Unix-like utilities.<ref>{{Cite web |url=http://unxutils.sourceforge.net/ |title=Native Win32 ports of some GNU utilities |access-date=2020-07-25 |archive-date=2006-02-09 |archive-url=https://web.archive.org/web/20060209022842/http://unxutils.sourceforge.net/ |url-status=live }}</ref> In 2019, [[macOS Catalina]] adopted Zsh as the default login shell, replacing the [[GPLv2]] licensed version of [[Bash (Unix shell)|Bash]],<ref>{{Cite web|url=https://www.theverge.com/2019/6/4/18651872/apple-macos-catalina-zsh-bash-shell-replacement-features|title=Apple replaces bash with zsh as the default shell in macOS Catalina|last=Warren|first=Tom|date=June 4, 2019|website=The Verge|access-date=June 13, 2019|archive-date=June 10, 2019|archive-url=https://web.archive.org/web/20190610051842/https://www.theverge.com/2019/6/4/18651872/apple-macos-catalina-zsh-bash-shell-replacement-features|url-status=live}}</ref> and when Bash is run interactively on Catalina, a warning is shown by default.<ref>{{cite web |title=Use zsh as the default shell on your Mac - Apple Support |url=https://support.apple.com/en-us/HT208050 |access-date=1 July 2019 |archive-date=2 December 2019 |archive-url=https://web.archive.org/web/20191202143802/https://support.apple.com/en-us/HT208050 |url-status=live }}</ref> In 2020, [[Kali Linux]] adopted Zsh as the default shell since its 2020.4 release.<ref>{{Cite web|title=Kali Linux 2020.4 Release (ZSH, Bash, CME, MOTD, AWS, Docs, Win-KeX & Vagrant) {{!}} Kali Linux Blog|url=https://www.kali.org/blog/kali-linux-2020-4-release/|access-date=2021-03-03|website=Kali Linux|language=English}}</ref> == Features == [[File:Zsh 5.9 new user screenshot.webp|thumb|Z shell's configuration utility for new users]] [[File:Zsh-agnoster.png|thumb|Zsh with Agnoster theme running on [[Konsole]] terminal emulator]] Features include:<ref>{{Cite web|url=http://zsh.sourceforge.net/FAQ/zshfaq01.html|title=Z-Shell Frequently-Asked Questions|website=zsh.sourceforge.net|access-date=2020-03-04|archive-date=2021-03-02|archive-url=https://web.archive.org/web/20210302213122/http://zsh.sourceforge.net/FAQ/zshfaq01.html|url-status=live}}</ref> * 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 [[glob (programming)|file globbing]] allows file specification without needing to run an external program such as [[Find (Unix)|find]] * Improved [[variable (computer science)|variable]]/[[Array data structure|array]] handling (non-[[zero-based numbering]]) * Editing of multi-line commands in a single buffer * [[spell checker|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 <code>/bin/sh</code> * Themeable [[Command-line interface#Command prompt|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 [[Transmission Control Protocol|TCP]] and [[Unix domain socket]] controls, an [[File Transfer Protocol|FTP]] client, and extended math functions. * The built-in <code>where</code> command. Works like the <code>which</code> command but shows all locations of the target command in the directories specified in <code>$PATH</code> rather than only the one that will be used. * Named directories. This allows the user to set up shortcuts such as <code>~mydir</code>, which then behave the way <code>~</code> and <code>~user</code> do. * Widgets. Both built and implemented by ordinary functions widgets can be bound to hotkeys. * Function autoloading. A performance optimization for function that might be pre-loaded and run on demand.<ref>{{Cite book |title=Unix power tools |date=2003 |publisher=O'Reilly |isbn=978-0-596-00330-2 |edition=3 |location=Sebastopol (Calif.)}}</ref> The intent of loading functions as separate file is also to support function features across different zsh versions. == Community == [[File:Oh My Zsh logo.png|thumb|Oh My Zsh logo]] A user community website known as "Oh My Zsh" collects third-party plug-ins and themes for the Z shell. As of 2024, their [[GitHub]] repository has over 2300 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.<ref>{{cite web |title=ohmyzsh Github |url=https://github.com/ohmyzsh/ohmyzsh |website=GitHub }}</ref> == See also == {{Portal|Free and open-source software}} * [[Comparison of command shells]] == References == {{Reflist}} == External links == * {{SourceForge|zsh}} * [https://ohmyz.sh Oh My Zsh] {{Unix Shells}} [[Category:Scripting languages]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Ndash
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:SourceForge
(
edit
)
Template:Template other
(
edit
)
Template:Unix Shells
(
edit
)