Bash is the GNU Project's Bourne Again SHell, a complete implementation of the IEEE POSIX and Open Group shell specification with interactive command line editing, job control on architectures that support it, csh-like features such as history substitution and brace expansion, and a slew of other features. Here is a short list of some of the features available in bash.
For more information on the features of Bash that are new to this type of shell, see the reference manual. There is also a large Unix-style man page. The man page is the definitive description of the shell's features.
Bash is free software, distributed under the terms of the GNU General Public License, version 3.
A number of frequently-asked questions are answered in the FAQ, though that is no longer maintained.
The current version of bash is bash-5.2. (GPG signature).
A downloadable tar file of the current version with all official patches applied is available from the GNU git repository; the full tree is here.
A snapshot of the current development sources (generally updated weekly or more often), is available from the GNU git bash devel branch.
See the README file for more information.
The NEWS file tersely lists the new features in bash-5.2; a full set of changes is available in CHANGES.
The current version of bash is available from ftp.cwru.edu and from the master GNU ftp site and its many mirrors. The CWRU FTP site works best if your client supports Extended Passive (EPSV) mode. This distribution file includes formatted copies of the documentation.
These files are signed with my GPG key.
There are a number of files available for FTP from ftp.cwru.edu.
Any patches for the current version are available from CWRU and ftp.gnu.org.
A downloadable tar file of the current version with all official patches applied is available from the GNU git repository, and a snapshot of the current development sources (generally updated weekly or more often), is also available from the GNU bash git devel branch.
Previous Bash versions are available at ftp://ftp.gnu.org/gnu/bash.
Bash is the standard shell on GNU/Linux systems, most of which are using bash-5.0 or bash-5.1 (some still use bash-4.4). Bash-5.1 is included as part of the FreeBSD ports collection, the OpenBSD packages collection, and the NetBSD packages collection.
The OpenPKG project makes source RPMs of bash-5.1 available for a variety of Unix and Linux systems as a core part of the current release.
Current versions of macOS (dating from Jaguar/Mac OS X 10.2) ship with bash-3.2 as /bin/sh and /bin/bash. There are also precompiled macOS packages of bash-5.0 available from many web sites, though the source packages are usually more up-to-date. Bash for Darwin (the base for macOS) is available from MacPorts, Homebrew, or older versions from Fink.
Solaris 2.x and Solaris 7/8/9/10/11 users can get a precompiled version of bash-4.4 from the Unixpackages site (subscription) or bash-4.3 from OpenCSW. Oracle ships bash-3.2 as a supported part of Solaris 10 and bash-5.1 as part of Solaris 11. The version of Solaris/Illumos distributed as OpenIndiana includes bash-5.1 as of January 2022 ("Hipster").
AIX users can get sources and binaries of bash-5.0, and older versions, for various AIX releases from perzl.org. IBM makes bash-5.1 (and older versions) available for AIX 5L through AIX 7.2 as part of the AIX toolbox for [GNU/]Linux applications. They use RPM format; you can get RPM for AIX from there, too.
HP-UX users can get bash-5.1 binaries and source code from the Software Porting and Archive Center for HP-UX. (The current version as of this date is bash-5.1.16).
It's even available on Minix. If you are running Windows, I recommend that you use Cygwin, who currently ship bash-4.4.12 for x86 and bash-4.4.12 for x86_64.
Microsoft offers its Windows Subsystem for Linux (WSL) as an installable add-on for Windows 10 and Windows 11. It's basically a separate packaged version of the Linux kernel that runs as a Windows service, and you can install various Linux distributions running bash-5.1 (or build and install bash-5.2 yourself) within that environment.
A list of Frequently-Asked-Questions with answers, though this document is no longer maintained.
The discussion list bug-bash@gnu.org often contains information about new ports of Bash, or discussions of new features or behavior changes that people would like. The mailing list is where bugs in bash are reported and fixes are posted. This mailing list is also available as a Usenet newsgroup, gnu.bash.bug.
Archives of bug-bash dating from December, 1999 are available from lists.gnu.org. Google Groups has an archive of gnu.bash.bug.
General questions about bash and shell programming should be sent to the help-bash@gnu.org mailing list. Its archives are also available from lists.gnu.org.
Some files from the current distribution may also be helpful.
Here are a couple of the papers I've written on bash.
Bug reports for bash should be sent to bug-bash@gnu.org using the bashbug program that is built and installed at the same time as bash.
The discussion list bug-bash@gnu.org often contains information about new ports of Bash, or discussions of new features or behavior changes that people would like. This mailing list is also available as a usenet newsgroup, gnu.bash.bug. You may subscribe to the mailing list at lists.gnu.org.
When you send a bug report, please use the bashbug program that is built at the same time as bash. If bash fails to build, try building bashbug directly with make bashbug. If you cannot build bashbug, please send mail to bug-bash@gnu.org with the following information:
The bashbug program includes much of this automatically.
If you would like to contact the Bash maintainers directly, send mail to bash-maintainers@gnu.org.
I am the current Bash maintainer, and may be reached as bash-maintainers@gnu.org. Please send additions and corrections to this page to chet.ramey@case.edu.
Translate this page:
There are several user-contributed translations of (older versions of) this page.