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
Bash (Unix shell)
(section)
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!
=== Timeline === {{Split portions|subsections=y |date=January 2025 |Unix Shell|Bourne shell|Thompson shell|Korn shell|C shell}} {{timeline-start}} {{timeline-item|{{start date|1963}}|2= While at MIT developing for the [[Compatible Time-Sharing System]] operating system, [[Louis Pouzin]] wrote ''[[RUNCOM]]'', "a sort of shell driving the execution of command scripts, with argument substitution". He "felt that commands should be usable as building blocks for writing more commands, just like subroutine libraries".<ref name="Pouzin, 2000">{{Cite web |last=Louis Pouzin |date=25 November 2000 |title=The Origin of the Shell |url=https://multicians.org/shell.html}}</ref> * "There was a facility that would execute a bunch of commands stored in a file; it was called <code>runcom</code> for 'run commands', and the file began to be called 'a runcom'. <code>rc</code> in Unix is a fossil from that usage."<ref name = "Indiana University, 2009"> {{ cite web | date = 5 February 2009 | publisher = Indiana University | url = http://kb.iu.edu/data/abnd.html | archive-url = https://web.archive.org/web/20100610011504/http://kb.iu.edu/data/abnd.html | archive-date = 10 June 2010 | title = In Unix, what do some obscurely named commands stand for? | url-status = dead }}</ref><ref>{{Cite web |title=Vicki Brown, Bio |url=https://www.oreilly.com/pub/au/2933 |publisher=O'Reilly Media}}</ref> }} {{timeline-item|{{start date|1964}}|2= Development began on MULTICS at MIT. }} {{timeline-item|{{start date|1965}}|2= <!-- Suggestion 2 / 8 -- 06 Jan 2025 --> {{Timeline-event|date={{start date text|April 2, 1965}}|event=MIT publishes ''"The SHELL, A Global Tool for Calling and Chaining Procedures in the System"'', by Louis Pouzin. The paper describes many features found in Bash.<ref name="Pouzin, 1965">{{Cite web |title=The SHELL, A Global Tool for Calling and Chaining Procedures in the System |url=https://people.csail.mit.edu/saltzer/Multics/Multics-Documents/MDN/MDN-4.pdf}}</ref> }} {{blockquote |text = "[[Christopher Strachey]], a British scientist, had visited MIT about that time, and his '''macro-generator''' design appeared to me a very solid base for a command language, in particular the techniques for quoting and passing arguments. Without being invited on the subject, I wrote a paper explaining how the Multics command language could be designed with this objective. And I coined the word 'shell' to name it."<ref name="Pouzin, 2000" />}} * "It (i.e., the [[Thompson Shell]]) was modeled after the Multics shell, developed in 1965 by American software engineer [[Glenda Schroeder]]. '''Schroeder's Multics shell''' was itself modeled after the RUNCOM program Louis Pouzin showed to the Multics Team. }} {{ timeline-item|{{start date|1968}}|2= ALGOL68 was released. The Bourne shell drew from it the concepts of program flow, closed forms (<code>if...fi</code>, <code>case...esac</code>), and completion of substitutions anywhere.<ref name="Bourne, 2015">{{ multiref2 | {{Cite web |title=BSDCan 2015, The Technical BSD Conference |date=17 April 2016 |url=https://www.bsdcan.org/2015/schedule/events/612.en.html |access-date=20 January 2025}} | {{ cite web | access-date = 20 January 2025 | author = Stephen R. Bourne | date = 12 June 2015 | title = Early days of Unix and design of sh | url = https://www.bsdcan.org/2015/schedule/attachments/306_srbBSDCan2015.pdf }} }}</ref> These closed forms and the <code>for...done</code> and <code>while...done</code> loop were defined as "Guarded Commands" in 1976 by Dijkstra.<ref name="Dijkstra, 1976">{{Cite web |last=Edsger W. Dijkstra |date=27 January 1975 |title=Guarded commands, non-determinacy and formal derivation of programs |url=https://www.cs.utexas.edu/~EWD/ewd04xx/EWD472.PDF |access-date=20 January 2025 |quote='Guarded command,' a statement list prefixed by a Boolean expression: only when this boolean expression is initially true, is the statement list eligible for execution.}}</ref> }} {{timeline-item|{{start date|1969}}|2= The [[Multics|MULTICS]] operating system was introduced as a collaboration between MIT, GE and Bell Labs. "It is also the first to have a command processor implemented as ordinary user code β an idea later used in the Unix shell."[[Multics|Multics Wikipage]] It was called exec_com or ec.<ref name="Multicians, Unix">{{Cite web |title=Unix and Multics |url=https://www.multicians.org/unix.html |website=multicians.org}}</ref><ref name="Multics History, info segment on exec_com">{{Cite web |title=Multics History, info segment on exec_com |url=https://web.mit.edu/multics-history/source/Multics/doc/info_segments/exec_com.info}}</ref> }} {{timeline-item|{{start date|1971}}|2= "Ken Thompson (of Bell Labs) developed the first shell for UNIX called the 'V6 shell'." Its sole purpose was to serve as an interactive shell. It supported external commands called <code>glob</code>, for pattern matching, and <code>if</code>, for conditional expressions. "The shell introduced a compact syntax for redirection (<code><</code> <code>></code> and <code>>></code>) and piping (<code>{{!}}</code> or <code>^</code>) that has survived into modern shells. You can also find support for invoking sequential commands (with <code>;</code>) and asynchronous commands (with <code>&</code>)."<ref name="developer.ibm.com" /> It also incorporated a goto command. "However, the Thompson shell was still distributed with the system as <code>osh</code>."<ref>https://v6sh.org/ V6 Sh History</ref> }} {{timeline-item|{{start date|1972}}|2= Pipelines were introduced in Unix.<ref name="Bourne, 2015" /> }} {{timeline-item|{{start date|1973}}|2= UNIX, originally written by Ken Thompson, Dennis Ritchie, and Brian Kernighan among others, was released by AT&T (wikipedia UNIX page). }} {{timeline-item|{{start date|1975}}|2=<nowiki/> * "PWB Mashey shell started mid 1975."<ref name="Bourne, 2015" /> * {{Timeline-event|date={{start date text|September 1975}}|event=[[Digital Equipment Corporation]] released the VT52, which "provided a screen of 24 rows and 80 columns of text and supported all 95 ASCII characters, as well as... bi-directional scrolling" and, unlike its predecessor the VT50, lower case support ([[VT52]]).}} }} {{timeline-item|{{start date|1977}}|2=<nowiki/> * The American National Standard Code for Information Interchange, or "ASCII", is published by the National Institute of Science and Technology, or "NIST", as FIPS PUB 1-2.<ref name="NIST, ASCII Publication, PDF c1977">{{Cite web |title=NIST, ASCII Publication, PDF c1977 |url=https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub1-2-1977.pdf}}</ref> The ASCII character set is still with us today as a core component of writing portable shell scripts. * "The Bourne shell was introduced.... Created by Stephen Bourne at AT&T Bell Labs for V7 UNIX, [it] remains a useful shell today (in some cases, as the default root shell)." "Bourne introduced control flows, loops, and variables into scripts, providing a more functional language to interact with the operating system (both interactively and noninteractively). The shell also permitted you to use shell scripts as filters, providing integrated support for handling signals, but lacked the ability to define functions. Finally, it incorporated a number of features we use today, including command substitution (using back quotes) and HERE documents to embed preserved string literals within a script."<ref name="developer.ibm.com" /> It used the -eq, -ne, -lt style of test operators * The [[KornShell|Korn Shell]] was introduced at around the same time as was the Bourne shell. * [[OpenVMS]] β Initial Release.<ref>{{Cite web |title=Installing the new GNU packages |url=https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/ |url-status=live |archive-url=https://web.archive.org/web/20201003182204/https://sourceforge.net/p/gnv/wiki/InstallingGNVPackages/ |archive-date=October 3, 2020 |access-date=2020-09-04}}</ref> It included Bash at some later point. }} {{timeline-item|{{start date|1978}}|2=<nowiki/> * [[C shell]] β Initial release. Created by Bill Joy while he was at Berkeley, and released with 2BSD. "A useful feature introduced by Bill Joy in the C shell was command history. This feature maintained a history of the previously executed commands and allowed the user to review and easily select previous commands to execute. For example, typing the command history would show the previously executed commands. The up and down arrow keys could be used to select a command, or the previous command could be executed using !!. It's also possible to refer to arguments of the prior command; for example, !* refers to all arguments of the prior command, where !$ refers to the last argument of the prior command."<ref name="developer.ibm.com" /> "csh, tcsh, zsh, ash, and scsh are all released under the BSD or a BSD-like license." * {{Timeline-event|date={{start date text|August 1978}}|event=[[Digital Equipment Corporation]] introduced the [[VT100]].}} }} {{timeline-item|{{start date|1983}}|2=<nowiki/> * The TENEX C shell "introduced file name and command completion in addition to command-line editing features. The [[tcsh]] was developed by Ken Greer at Carnegie Mellon University."<ref name="developer.ibm.com" /> The shebang, or hashbang symbol was available in tcsh. Also, positional parameters as the argv array including argv[1], the $0 shell variable as argv[0], the Count of Indices parameter expansion $#var, the -d and -x operators of a testing syntax regarding directory and executability tests, respectively, the ! negate symbol, a looping construct in the foreach command, the set, echo and exit commands, variable assignment and arithmetic contexts "@ count = $count + 1", and familiar double quoting rules. * [[Novell NetWare]] β Initial release. It included Bash at some later point. }} {{timeline-item|{{start date|1984}}|2= "The IEEE POSIX work started in 1984 as an outgrowth of work initiated in the /usr/group organization to build a standard on the two variations of UNIX at the time β version 6 and BSD (Berkeley)."<ref name="POSIX Impact">{{Cite web |title=JimIsaak - POSIX Impact |url=https://sites.google.com/site/jimisaak/posix-impact |via=sites.google.com}}</ref> }} {{timeline-item|{{start date|1986}}|2= The documents which would become known as "POSIX" started out as a trial use standard by the IEEE. By some it is considered a de facto standard.<ref name="Usenix ';login:' Feb 2007">{{Cite web |title=An Update On Standards |url=https://www.usenix.org/legacy/bodinfo/login0207.html |website=usenix.org}}</ref> }} {{timeline-item|{{start date|1988}}|2=<nowiki/> * {{Timeline-event|date={{start date text|January 10, 1988}}|event= [[Brian Fox (computer programmer)|Brian Fox]] began [[Computer programming|coding]] Bash<ref>{{Citation |last=Brian Fox |title=shell.c |date=August 29, 1996 |url=http://ftp.gnu.org/gnu/bash/bash-1.14.7.tar.gz |access-date=November 1, 2010 |archive-url=https://web.archive.org/web/20180928193215/http://ftp.gnu.org/gnu/bash/bash-1.14.7.tar.gz |archive-date=September 28, 2018 |url-status=live |publisher=[[Free Software Foundation]] |quote=Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox}}</ref> after [[Richard Stallman]] became dissatisfied with the lack of progress being made by a prior developer.<ref name="GNUBSD">{{Cite newsgroup |url=https://groups.google.com/g/comp.unix.questions/c/iNjWwkyroR8/m/yedr9yDWSuQJ |title=GNU + BSD = ? |last=[[Richard Stallman]] (forwarded with comments by Chet Ramey) |date=February 10, 1988 |newsgroup=comp.unix.questions |message-id=2362@mandrill.CWRU.Edu |quote=For a year and a half, the GNU shell was "just about done". The author made repeated promises to deliver what he had done, and never kept them. Finally I could no longer believe he would ever deliver anything. So Foundation staff member Brian Fox is now implementing an imitation of the Bourne shell. |archive-url=https://web.archive.org/web/20211228023030/https://groups.google.com/g/comp.unix.questions/c/iNjWwkyroR8/m/yedr9yDWSuQJ |archive-date=December 28, 2021 |url-status=live |access-date=December 28, 2021}}</ref> Stallman and the [[Free Software Foundation|FSF]] considered a free shell that could run existing shell scripts so strategic to a completely free system built from BSD and GNU code that this was one of the few projects they funded themselves. Fox undertook the work as an employee of FSF.<ref name = GNUBSD/><ref>{{Cite web |last=[[Richard Stallman]] |date=3 October 2010 |title=About the GNU Project |url=https://www.gnu.org/gnu/thegnuproject.html |url-status=live |archive-url=https://web.archive.org/web/20110424064815/https://www.gnu.org/gnu/thegnuproject.html |archive-date=April 24, 2011 |access-date=21 March 2011 |publisher=[[Free Software Foundation]] |quote=Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. ... We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.}}</ref>}} * "The first version of the IEEE Std 1003 was published in 1988 with the reference 'IEEE IX'", but these standards would not specify requirements for a "command interpreter", or "Shell and Utilities", until later. "At the suggestion of Richard Stallman, this was changed to POSIX for 'portable operating system interface'."<ref name="POSIX Impact" /><ref name="stallman.org posix">{{Cite web |title=The origin of the name POSIX. |url=https://stallman.org/articles/posix.html |website=stallman.org}}</ref> The POSIX "interface enables application writers to write portable applications {{--}} it was developed with that goal in mind".<ref name="POSIX Backgrounder">{{Cite web |title=POSIX.1 Backgrounder |url=https://www.opengroup.org/austin/papers/backgrounder.html |website=opengroup.org}}</ref> }} {{timeline-item|{{start date|1989}}|2=<nowiki/> * {{Timeline-event|date={{start date text|May 30, 1989}}|event=Kenneth Almquist's ash shell β Initial release.<ref name="Mascheck, Ash Variants">{{Cite web |title=ash variants |url=https://www.in-ulm.de/~mascheck/various/ash/ |website=in-ulm.de}}</ref>}} * {{Timeline-event|date={{start date text|June 8, 1989}}|event=Fox released Bash as a beta, version 0.99.<ref name = BashBeta/> The license was GPL-1.0-or-later. "In addition to supporting backward-compatibility for scripting, Bash has incorporated features from the Korn and C shells. You'll find command history, command-line editing, a directory stack (pushd and popd), many useful environment variables, command completion, and more."<ref name="Evolution of shells in Linux ">{{Cite web |date=9 December 2011 |title=Evolution of shells in Linux |url=https://developer.ibm.com/tutorials/l-linux-shells/}}</ref> Eventually it supported "regular expressions (similar to Perl), and associative arrays".}} * Microsoft/IBM [[DOS]] via the [[DJGPP]] project β Initial release. }} {{timeline-item|{{start date|1992}}|2=<nowiki/> * POSIX.2: Shell and Utilities (IEEE Std 1003.2-1992) was published. * Brian Fox remained the primary maintainer until sometime between mid-1992<ref>{{Cite newsgroup |url=https://groups.google.com/group/gnu.misc.discuss/msg/4f42c739cd7e8bd8 |title=January 1993 GNU's Bulletin |last=len (g...@prep.ai.mit.edu) |date=April 20, 1993 |newsgroup=gnu.announce |message-id=gnusenet930421bulletin@prep.ai.mit.edu |archive-url=https://web.archive.org/web/20210302213455/https://groups.google.com/forum/ |archive-date=March 2, 2021 |url-status=live |access-date=October 28, 2010}}</ref> and mid-1994.<ref name="Bourne shell grammar">{{Cite web |last=Ramey |first=Chet |date=August 1, 1994 |title=Bash β the GNU shell (Reflections and Lessons Learned) |url=http://www.linuxjournal.com/article/2800#N0xa50890.0xb46380 |url-status=live |archive-url=https://web.archive.org/web/20081205082152/http://www.linuxjournal.com/article/2800 |archive-date=December 5, 2008 |access-date=November 13, 2008 |website=[[Linux Journal]]}}</ref><ref>{{Citation |last=Chet Ramey |title=Dates in your Computerworld interview |date=October 31, 2010 |url=https://www.scribd.com/doc/40556434/2010-10-31-Chet-Ramey-Early-Bash-Dates |access-date=October 31, 2010 |archive-url=https://web.archive.org/web/20120720124341/http://www.scribd.com/doc/40556434/2010-10-31-Chet-Ramey-Early-Bash-Dates |archive-date=July 20, 2012 |url-status=live}}</ref> His responsibility was then transitioned to another early contributor, Chet Ramey.<ref>{{multiref2| {{Cite web |last=Ramey |first=Chet |date=2021-04-20 |title=The GNU Bourne-Again Shell |url=https://tiswww.case.edu/php/chet/bash/bashtop.html |access-date=1 March 2022 |website=Technology Infrastructure Services |publisher=[[Case Western Reserve University]]}} | {{Cite newsgroup |url=https://groups.google.com/group/gnu.bash.bug/msg/1fc7b688f5d44438?hl=en |title=Bash 0.99 fixes & improvements |last=Chet Ramey |date=June 12, 1989 |newsgroup=gnu.bash.bug |archive-url=https://web.archive.org/web/20121110194014/http://groups.google.com/group/gnu.bash.bug/msg/1fc7b688f5d44438?hl=en |archive-date=November 10, 2012 |url-status=live |access-date=November 1, 2010 }} | {{Cite newsgroup |url=https://groups.google.com/group/gnu.bash.bug/msg/072a03645663caea?hl=en |title=Some bash-1.02 fixes |last=Chet Ramey |date=July 24, 1989 |newsgroup=gnu.bash.bug |archive-url=https://web.archive.org/web/20121110194034/http://groups.google.com/group/gnu.bash.bug/msg/072a03645663caea?hl=en |archive-date=November 10, 2012 |url-status=live |access-date=October 30, 2010 }} | {{Cite newsgroup |url=https://groups.google.com/group/gnu.bash.bug/msg/e6112ccc8866e2f4?hl=en |title=Availability of bash 1.05 |last=Brian Fox |date=March 2, 1990 |newsgroup=gnu.bash.bug |archive-url=https://web.archive.org/web/20121110194052/http://groups.google.com/group/gnu.bash.bug/msg/e6112ccc8866e2f4?hl=en |archive-date=November 10, 2012 |url-status=live |access-date=October 30, 2010 }} }}</ref><ref name="cmpwrld_intrw2008" /><ref name="goftw2015" /> Since then, Bash has become the most popular default interactive shell among the major GNU/Linux distributions, such as [[Fedora Linux|Fedora]], [[Debian]], and [[openSUSE]], as well as among their derivatives and competitors.<ref>{{Cite book |last1=Bresnahan |first1=Christine |url=https://books.google.com/books?id=2P3zBgAAQBAJ&q=%22most+popular%22+linux+shell&pg=PA5 |title=CompTIA Linux+ Powered by Linux Professional Institute Study Guide: Exam LX0-103 and Exam LX0-104 |last2=Blum |first2=Richard |date=April 2015 |publisher=John Wiley & Sons, Inc. |isbn=978-1-119-02122-3 |edition=3rd |page=5 |quote=In Linux, most users run bash because it is the most popular shell. |access-date=June 6, 2016 |archive-url=https://web.archive.org/web/20210302212409/https://books.google.com/books?id=2P3zBgAAQBAJ&q=%22most+popular%22+linux+shell&pg=PA5 |archive-date=March 2, 2021 |url-status=live}}</ref><ref>{{Cite book |last1=Danesh |first1=Arman |url=https://books.google.com/books?id=tIjrVYbZmUAC&q=bash+most+popular+unix+shell&pg=PA363 |title=Mastering Linux |last2=Jang |first2=Michael |date=February 2006 |publisher=John Wiley & Sons, Inc. |isbn=978-0-7821-5277-7 |page=363 |quote=The Bourne Again Shell (bash) is the most common shell installed with Linux distributions. |access-date=June 6, 2016 |archive-url=https://web.archive.org/web/20210302212410/https://books.google.com/books?id=tIjrVYbZmUAC&q=bash+most+popular+unix+shell&pg=PA363 |archive-date=March 2, 2021 |url-status=live}}</ref> }} {{timeline-item|{{start date|1992}}|2= "The first eight entries in (POSIX) Portable Character Set are defined in the ISO/IEC 6429:1992 standard." They are null, alert, backspace, tab, carriage-return, newline, vertical-tab and form-feed.<ref name="Portable Character Set">{{Cite web |title=Character Set |url=https://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap06.html |website=pubs.opengroup.org}}</ref> }} {{timeline-item|{{start date|1994}}|2=<nowiki/> * {{Timeline-event|date={{start date text|January 26, 1994}}|event=Debian β initial release. Bash is the default interactive and non-interactive shell.<ref name="Debian Wiki: Shell" />}} }} {{timeline-item|{{start date|1995}}|2=<nowiki/> * [[Cygwin]] β Initial release. * [[BeOS]] β Initial release.<ref name="Forbes, A Desktop Alternative">{{Cite web |title=A desktop alternative |url=https://www.forbes.com/1999/01/25/feat.html |website=Forbes}}</ref><ref>{{Cite web |title=Appendix A: Using the BeOS Command Line Shell |url=http://testou.free.fr/www.beatjapan.org/mirror/www.be.com/documentation/user_docs/app_a_commandline.html |website=testou.free.fr}}</ref> }} {{timeline-item|{{start date|1996}}|2=<nowiki/> * {{Timeline-event|date={{start date text|December 31, 1996}}|event= Chet Ramey released bash 2.0. The license was GPL-2.0-or-later.}} }} {{timeline-item|{{start date|1997}}|2=<nowiki/> * {{Timeline-event|date={{start date text|June 5, 1997}}|event=Bash 2.01 is released.}} * Almquist shell, ash, ported from NetBSD to Debian by Herbert Xu. }} {{timeline-item|{{start date|1998}}|2=<nowiki/> * {{Timeline-event|date={{start date text|April 18, 1998}}|event=Bash 2.02 is released.}} * [[MinGW]] (32-bit) β Initial release. * A group of Standards Committees from the IEEE, the Open Group and the ISO/IEC began working on the Single UNIX Specification v 3; they together became known as the Austin Group. A Technical Standard for Shell and Utilities was created in The Open Group Base Specifications, Issue 6, which is itself a part of the Single UNIX Specification v 3.<ref name="Single UNIX Specification v 3 - Overview">{{Cite web |title=The Single UNIX Specification, Version 3 β Overview |url=https://unix.org/version3/overview.html |website=unix.org}}</ref> A focus of their work was to "collect into a single document" practices which had been proven to work in industry and academia while making "minimal changes to existing application code".<ref name="POSIX Backgrounder" /> }} {{timeline-item|{{start date|1999}}|2=<nowiki/> * {{Timeline-event|date={{start date text|February 19, 1999}}|event= Bash 2.03 is released.}} }} {{timeline-item|{{start date|2000}}|2=<nowiki/> * {{Timeline-event|date={{start date text|March 21, 2000}}|event=Bash 2.04 is released. }} * The Korn shell is released as open source under the Common Public License. * "The rest of the characters" in the POSIX Portable Character Set "are defined in the ISO/IEC 10646-1:2000 standard". They comprise the remainder of the characters on a U.S. qwerty keyboard from <nowiki><space> to <tilde></nowiki>.<ref name="Portable Character Set" /> * BeOS β Final release * Darwin OS β Initial release. Bash is one of the available shells.<ref name="Evolution of shells in Linux" /> * {{Timeline-event|date={{start date text|September 14, 2000}}|event=Bug-bash mailing list exists.<ref>{{Cite mailing list |last=Chet Ramey |title=Re: Line-Edit mode is lost if "set -o vi" is in any files sourced on login. |mailing-list=bug-bash |date=14 Sep 2000 |url=https://lists.gnu.org/archive/html/bug-bash/2000-09/msg00000.html}}</ref>}} }} {{timeline-item|{{start date|2001}}|2=<nowiki/> * {{Timeline-event|date={{start date text|April 9, 2001}}|event=Bash 2.05 released.<ref>{{Cite mailing list |last=Chet Ramey |title=Bash-2.05 available for FTP |mailing-list=bug-bash |date=9 Apr 2001 |url=https://lists.gnu.org/archive/html/bug-bash/2001-04/msg00047.html}}</ref>}} * A POSIX-2001 Standard is published which includes a "Commands and Utilities" section. The Austin Group and the Single Unix Specification is involved.<ref name="Single UNIX Specification v 3 - Overview" /> }} {{timeline-item|{{start date|2002}}|2=<nowiki/> * {{Timeline-event|date={{start date text|September 2002}}|event= In Debian, version 0.4.1 of ash was renamed to dash.}} }} {{timeline-item|{{start date|2003}}|2=<nowiki/> * Bash became the default shell on Apple's operating systems (i.e., MacOS) starting with OS X 10.3 Panther.<ref>[https://www.google.com/books/edition/Essential_Mac_OS_X_Panther_Server_Admini/zrI-U0KWj3cC?hl=en&gbpv=1&dq=bash&pg=PA189&printsec=frontcover Essential Mac OS S Panther Server Administration, pg. 189]</ref><ref>{{Cite book |last1=Foster-Johnson |first1=Eric |url=https://books.google.com/books?id=dwIRERUpQPEC&q=bash+most+popular+unix+shell&pg=PA6 |title=Beginning Shell Scripting |last2=Welch |first2=John C. |last3=Anderson |first3=Micah |date=April 2005 |publisher=John Wiley & Sons, Inc. |isbn=978-0-7645-9791-6 |page=6 |quote=Bash is by far the most popular shell and forms the default shell on Linux and Mac OSX systems. |access-date=June 6, 2016 |archive-url=https://web.archive.org/web/20210302212410/https://books.google.com/books?id=dwIRERUpQPEC&q=bash+most+popular+unix+shell&pg=PA6 |archive-date=March 2, 2021 |url-status=live}}</ref> It was available on OS X 10.2 Jaguar as well where the default shell was tcsh. * A POSIX-2003 Shell and Utilities standard is published by the IEEE. "This is a component product standard for the mandatory shell and utilities related functionality"; a POSIX Certification Program exists.<ref name="POSIX FAQ v 1.18">{{Cite web |title=POSIX.1 FAQ |url=https://www.opengroup.org/austin/papers/posix_faq.html |website=opengroup.org}}</ref> }} {{timeline-item|{{start date|2004}}|2=<nowiki/> * {{Timeline-event|date={{start date text|July 27, 2004}}|event=Bash 3.0 is released.<ref>{{Cite mailing list |title=Bash-3.0 available for FTP |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2004-07/msg00255.html}}</ref>}} * POSIX-2004 is published.<ref name="POSIX-2004">{{Cite web |title=The Open Group Base Specifications Issue 6 |url=https://pubs.opengroup.org/onlinepubs/009695399/ |website=pubs.opengroup.org}}</ref> }} {{timeline-item|{{start date|2005}}|2=<nowiki/> * {{Timeline-event|date={{start date text|December 9, 2005}}|event=Bash 3.1 is released.<ref>{{Cite mailing list |title=Bash-3.1 released |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2005-12/msg00018.html}}</ref>}} * [[Mingw-w64]] {{--}} Initial release. }} {{timeline-item|{{start date|2006}}|2=<nowiki/> * {{Timeline-event|date={{start date text|October 12, 2006}}|event=Bash 3.2 released.<ref>{{Cite mailing list |title=Bash-3.2 available for FTP |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2006-10/msg00057.html}}</ref> The license was GPL-2.0-or-later.}} * Ubuntu adopts dash as its default shell. }} {{ timeline-item | {{ start date | 2008 }} | 2= POSIX-2008 is released by the IEEE. "This standard defines a standard source level interface to the shell and utility functionality required by application programs, including shell scripts."<ref name="POSIX FAQ v 1.18" /> }} {{ timeline-item | {{ start date text | 2009 }} | 2 = <nowiki/> * {{ Timeline-event | date = {{ start date text | February 20, 2009 }} | event = Bash 4.0 is released<ref>{{Cite mailing list|title=Bash-4.0 available for FTP |url=https://lists.gnu.org/archive/html/bug-bash/2009-02/msg00164.html |mailing-list=bug-bash}}</ref> Its license is GPL-3.0-or-later. }} * Novell Netware β final release * {{ Timeline-event | date = {{ start date text | September 14, 2009 }} | event = [[Haiku (operating system)]] β Initial release.<ref>{{Cite web |date=September 14, 2009 |title=Haiku Project Announces Availability of Haiku R1/Alpha 1 |url=https://www.haiku-os.org/news/2009-09-13_haiku_project_announces_availability_haiku_r1alpha_1 |website=Haiku Project}}</ref> "Haiku's interface to the shell, by default", is bash.<ref>{{Cite web |title=Terminal |url=https://www.haiku-os.org/docs/userguide/en/applications/terminal.html |website=haiku-os.org}}</ref> As of September 13, 2024, Haiku remains in beta.<ref>{{Cite web |title=Get Haiku! |url=https://www.haiku-os.org/get-haiku/r1beta5/ |website=Haiku Project}}</ref> }} }} {{ timeline-item | {{ start date text | 2010 }} | 2 = <nowiki/> * {{ Timeline-event | date = {{ start date text | January 2, 2010 }} | event = Bash 4.1 is released.<ref>{{Cite mailing list|title=Bash-4.1 available for FTP |url=https://lists.gnu.org/archive/html/bug-bash/2010-01/msg00000.html |mailing-list=bug-bash}}</ref> }} }} {{ timeline-item | {{ start date text | 2011 }} | 2 = <nowiki/> * {{ Timeline-event | date = {{ start date text | February 6, 2011 }} | event = Debian Lenny is released with Bash as its default interactive shell, and dash as its default non-interactive shell.<ref>{{Cite web |title="Debian Wiki: Shell" |url=https://wiki.debian.org/Shell |quote="Dash lacks many of the features one would expect in an interactive shell, which allows it to be faster and more memory efficient than Bash."}}</ref> }} * {{ Timeline-event | date = {{ start date text | February 14, 2011 }} | event = Bash 4.2 is released.<ref>{{Cite mailing list|title=Bash-4.2 available for FTP |url=https://lists.gnu.org/archive/html/bug-bash/2011-02/msg00134.html |mailing-list=bug-bash}}</ref> }} }} {{ timeline-item | {{ start date | 2012 }} | 2 = On [[Solaris (operating system)|Solaris]] 11, "the default user shell is the Bourne-again (bash) shell."<ref>{{Cite web |title=User Environment Feature Changes |url=https://docs.oracle.com/cd/E23824_01/html/E24456/userenv-1.html |url-status=live |archive-url=https://web.archive.org/web/20180612144748/https://docs.oracle.com/cd/E23824_01/html/E24456/userenv-1.html |archive-date=June 12, 2018 |access-date=June 8, 2018 |publisher=Oracle}}</ref> }} {{ timeline-item | {{ start date | 2013 }} | 2 = POSIX-2013 is released by the IEEE.<ref>{{Cite web |title=The Open Group Base Specifications Issue 7, 2013 Edition |url=https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/ |website=pubs.opengroup.org}}</ref> }} {{timeline-item|{{start date|2014}}|2=<nowiki/> * {{Timeline-event|date={{start date text|February 27, 2014}}|event= Bash 4.3 is released.<ref>{{Cite mailing list |title=Bash-4.3 available for FTP |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2014-02/msg00081.html}}</ref>}} * {{Timeline-event|date={{start date text|8 September 2014}}|event=[[Shellshock (software bug)]].<ref name="Mitre, CVE-2014-6271">{{Cite web |title=CVE β CVE-2014-6271 |url=https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-6271 |website=cve.mitre.org}}</ref> Patches to fix the bugs were made available soon after the bugs were identified.<ref name="Bug-bash, Bash 3.0 Official Patch 1">{{Cite mailing list |title=Bash 3.0 Official Patch 1 |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2004-09/msg00083.html}}</ref>}} }} {{timeline-item|{{start date|2015}}|2= [[Termux]] and other terminal emulation applications provide availability of Bash on [[Android (operating system)|Android]]. }} {{timeline-item|{{start date|2016}}|2=<nowiki/> * {{Timeline-event|date={{start date text|April 26, 2016}}|event= [[Windows 10]] Insider Preview Build 14332 supports installation of Bash on Ubuntu in the newly released [[Windows Subsystem for Linux]].<ref name="Windows 10 Insider Preview Build 14332">{{Cite web |last=Aul |first=Gabe |date=26 April 2016 |title=Announcing Windows 10 Insider Preview Build 14332 |url=https://blogs.windows.com/windows-insider/2016/04/26/announcing-windows-10-insider-preview-build-14332/ |website=Windows Insider Blog}}</ref><ref>{{multiref2| {{Cite web |date=September 28, 2016 |title=How to install Bash shell command-line tool on Windows 10 |url=http://www.windowscentral.com/how-install-bash-shell-command-line-windows-10 |url-status=live |archive-url=https://web.archive.org/web/20161120213017/http://www.windowscentral.com/how-install-bash-shell-command-line-windows-10 |archive-date=November 20, 2016 |access-date=November 20, 2016}} | {{ cite web | access-date=July 8, 2016 | archive-date=September 24, 2019 | archive-url=https://web.archive.org/web/20190924163108/https://github.com/microsoft/WSL/issues/107 | title=Missing source code β GPL compliance? |work=Issue #107 Β· Microsoft/WSL | url=https://github.com/Microsoft/BashOnWindows/issues/107 | url-status=live | via=GitHub }} | {{ cite web | access-date = 9 April 2016 | archive-date = October 21, 2017 | archive-url = https://web.archive.org/web/20171021004857/http://www.softpedia.com/get/System/System-Miscellaneous/GNU-Bash.shtml | date = January 23, 2010 | publisher = SoftNews | title = GNU Bash | url = http://www.softpedia.com/get/System/System-Miscellaneous/GNU-Bash.shtml | url-status = live | website = [[Softpedia]] }} }}</ref>}} * POSIX-2016 is released by the IEEE.<ref name="POSIX-2016">{{Cite web |title=The Open Group Base Specifications Issue 7, 2016 Edition |url=https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/ |website=pubs.opengroup.org}}</ref> * {{Timeline-event|date={{start date text|September 15, 2016}}|event=Bash 4.4 is released.}} }} {{timeline-item|{{start date|2017}}|2=<nowiki/> * A new version of the POSIX Standard is released.<ref name="POSIX FAQ v 1.18" /> * Some other current operating systems which carry Bash include and [[ArcaOS]].<ref>{{Cite web |title=Compatibility Subsystems |work=Arca Noae |url=https://www.arcanoae.com/wiki/arcaos/compatibility-subsystems/ |url-status=live |archive-url=https://web.archive.org/web/20200923001119/https://www.arcanoae.com/wiki/arcaos/compatibility-subsystems/ |archive-date=September 23, 2020 |access-date=2020-09-04}}</ref> }} {{timeline-item|{{start date|2018}}|2=<nowiki/> * {{Timeline-event|date={{start date text|January 31, 2018}}|event=The IEEE published the POSIX 2017 Standard.<ref name="POSIX-2018">{{Cite web |title=The Open Group Base Specifications Issue 7, 2018 edition |url=https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/ |website=pubs.opengroup.org}}</ref>}} * Apple packaged Bash as their default interactive shell through until macOS Mojave (c. 2018). However, for explicit licensing reasons with [[MacOS Catalina|Catalina]]<ref name="scriptingosx.com, Moving to Zsh">{{Cite web |date=5 June 2019 |title=Moving to zsh |url=https://scriptingosx.com/2019/06/moving-to-zsh/?form=MG0AV3}}</ref> (c. 2019), Apple replaced its default shell, Bash version 3.2 (c. 2006), with [[Z Shell]] version 5.7 (c. 2019).<ref name="Apple Support - Use zsh as the default shell on your Mac">{{Cite web |title=Apple Support β Use zsh as the default shell on your Mac |url=https://support.apple.com/en-us/HT208050 |url-status=live |archive-url=https://web.archive.org/web/20191202143802/https://support.apple.com/en-us/HT208050 |archive-date=December 2, 2019 |access-date=1 July 2019}}</ref><ref name="Verge - Apple replaces bash with zsh...">{{Cite web |last=Warren |first=Tom |date=June 4, 2019 |title=Apple replaces bash with zsh as the default shell in macOS Catalina |url=https://www.theverge.com/2019/6/4/18651872/apple-macos-catalina-zsh-bash-shell-replacement-features |url-status=live |archive-url=https://web.archive.org/web/20190610051842/https://www.theverge.com/2019/6/4/18651872/apple-macos-catalina-zsh-bash-shell-replacement-features |archive-date=June 10, 2019 |access-date=June 13, 2019 |website=The Verge}}</ref> "The bash binary bundled with macOS has been stuck on version 3.2 for a long time now. bash v4 was released in 2009 and bash v5 in January 2019. The reason Apple has not switched to these newer versions is that they are licensed with GPL v3. bash v3 is still GPL v2."<ref name="scriptingosx.com, Moving to Zsh" /> Zsh uses a more permissive license.<ref name="The Next Web - Why Does MacOS Catalina Use zsh...">{{Cite web |last=Hughes |first=Matthew |date=2019-06-04 |title=Why does macOS Catalina use Zsh instead of Bash? Licensing |url=https://thenextweb.com/dd/2019/06/04/why-does-macos-catalina-use-zsh-instead-of-bash-licensing/ |url-status=live |archive-url=https://web.archive.org/web/20201231231721/https://thenextweb.com/dd/2019/06/04/why-does-macos-catalina-use-zsh-instead-of-bash-licensing/ |archive-date=December 31, 2020 |access-date=2021-01-12 |website=The Next Web |language=en-us}}</ref> }} {{timeline-item|{{start date|2019}}|2=<nowiki/> * {{Timeline-event|date={{start date text|January 7, 2019}}|event= Bash 5.0 is released.<ref>{{Cite mailing list |title=Bash-5.0 release available |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2019-01/msg00063.html}}</ref>}} }} {{timeline-item|{{start date|2020}}|2=<nowiki/> * With release 2020.4, Kali Linux switched to zsh as its default shell for desktop images, but its ARM, containers, NetHunter and WSL images still use Bash.<ref>{{Cite web |date=18 November 2020 |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/#zsh-shell-by-default |website=Kali Linux}}</ref> * {{Timeline-event|date={{start date text|December 7, 2020}}|event= Bash 5.1 is released.<ref name="Bash-5.1 release available">{{Cite mailing list |title=Bash-5.1 release available |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2020-12/msg00002.html}}</ref>}} }} {{timeline-item|{{start date|2022}}|2=<nowiki/> * {{Timeline-event|date={{start date text|September 26, 2022}}|event=Bash 5.2 is released.<ref>{{Cite mailing list |title=Bash-5.2 Release available |mailing-list=bug-bash |url=https://lists.gnu.org/archive/html/bug-bash/2022-09/msg00056.html}}</ref>}} * "At this point, 2022, a significant number of POSIX compatible or influenced systems exist in servers, cloud computing centers, high performance computers, Apple systems (initially BSD variations), and many cell phone systems. The number of devices measuring into the billions."<ref name="POSIX Impact" /> }} {{timeline-item|{{start date|2023}}|2=<nowiki/> * {{Timeline-event|date={{start date text|September 18, 2023}}|event= [[Windows Subsystem for Linux]] v 2.0.0 is released for [[Windows 11]].<ref name="Github: WSL 2.0.0">{{ GitHub | microsoft/WSL/releases/tag/2.0.0 | Github: WSL 2.0.0 | link=hidden }}</ref><ref name="How to Install WSL on Windows 11">{{Cite web |last=Hoffman |first=Chris |date=July 30, 2021 |title=How to Install the Windows Subsystem for Linux on Windows 11 |url=https://www.howtogeek.com/744328/how-to-install-the-windows-subsystem-for-linux-on-windows-11/ |access-date=2022-10-12 |website=How-To Geek |language=en-US}}</ref> }} }} {{timeline-item|{{start date|2024}}|2=<nowiki/> * {{Timeline-event|date={{start date text|June 14, 2024}}|event=POSIX-2024 is published by the IEEE.}} }} {{timeline-end}}
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)