GNU Bash (Bourne Again SHell) is an open source software project that has been designed from the offset as a sh-compatible shell for GNU/Linux systems. It borrows useful functionality from the C shell (csh) and Korn shell (ksh) and complies with the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.
Features at a glance
Key features include support for job control, command-line editing support, indexed arrays of unlimited size, support for an unlimited size of the command history, shell aliases and functions, as well as integer arithmetic support in any base, from 2 to 64.
Another interesting feature is the improved support for both interactive and programming use, which is much better than the one implemented in the sh program. Additionally, it is fully compatible with the scripts written for sh, allowing users to run them without modification.
Bash is everywhere
Bash can be found, installed by default, on any GNU/Linux operating system. It is there when you access a shell environment to rescue a broken system that is no longer bootable, when you are dropped to a console interface (TTY) or when you open an X11 terminal emulator. However, you can easily replace Bash with another shell, such as the powerful Z shell (zsh).
Under the hood and availability
A quick look under the hood of GNU Bash will show us that the software is written entirely in the C programming language. It is distributed as a universal sources archive, designed to support any GNU/Linux operating system and both 32-bit and 64-bit instruction set architectures.