The GNU Bourne-Again SHell

Table of Contents

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.0. (GPG signature).

A downloadable tar file of the current version with all official patches applied is available from the GNU git repository.

A snapshot of the current development sources (generally updated weekly), is also 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.0.

The current version of bash is available from ftp.cwru.edu and from the master GNU ftp site and its many mirrors. 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), 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-4.3 or bash-4.4. Bash-4.4 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-4.4 available for a variety of Unix and Linux systems as a core part of the current release.

Current versions of Mac OS X (dating from Jaguar/Mac OS X 10.2) ship with bash-3.2 as /bin/sh. There are also precompiled OS X packages of bash-4.4 available from many web sites, though the source packages are usually more up-to-date. Bash for Darwin (the base for MacOS X) is available from MacPorts, Homebrew, or 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-4.1 as part of Solaris 11. The version of Solaris/Illumos distributed as OpenIndiana includes bash-4.4 as of October 2018 ("Hipster").

AIX users can get precompiled versions of bash-4.4 and older releases for various versions of AIX from Groupe Bull, and sources and binaries of bash-4.4 for various AIX releases from perzl.org. IBM makes bash-4.4 (and older versions) available for AIX 5L, AIX 6.1, and AIX 7.1 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-4.4 binaries and source code from the Software Porting and Archive Center for HP-UX. (The current version as of this date is bash-4.4.23).

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, or MinGW, which currently has bash-3.1.23 as part of its MSYS base system.

Microsoft offers "Bash on Ubuntu on Windows" as an installable add-on for Windows 10. It's basically a separate packaged version of Ubuntu that runs as a Windows 10 application, and offers bash-4.3 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.

README: a file describing Bash

NEWS: a file tersely listing the notable changes between the current and previous versions

CHANGES: a complete bash change history

INSTALL: installation instructions

NOTES: platform-specific configuration and operation notes

COMPAT: compatibility issues between bash4 and previous versions

POSIX: what changes when bash is in posix mode?

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 version number and release status of Bash (e.g., 4.2-release)

The machine and OS that it is running on (you may run bashversion -l from the bash build directory or look at the `.made' file in that directory for this information)

from the bash build directory or look at the `.made' file in that directory for this information) A list of the compilation flags or the contents of `config.h', if appropriate

A description of the bug

A recipe for recreating the bug reliably

A fix for the bug if you have one!

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.

Chet Ramey <chet.ramey@case.edu>

Last updated: Wed Jan 22 10:08:58 EST 2020