Questions about bash only, as opposed to other Bourne/POSIX shells. For all Bourne/POSIX-style shells, use the /shell tag instead.
Bash (the Bourne again shell) is a Unix shell. It was intended as a free replacement to the Bourne shell and includes many scripting features from ksh and interactive features from (t)csh. Bash, when called as
sh is intended to conform to the POSIX 1003.2 standard.
Bash also includes more advanced interactive features such as command line editing with the readline library, command history, job control, dynamic prompts and completion.
Bash is the default interactive shell on most Linux distributions and is usually available on other unix variants. Some GNU/Linux systems even use it as the default scripting shell
/bin/sh while others use a smaller but more efficient shell.
Use the tag bash if your question is about Bash programming constructs or about interactive use of Bash. Use the tag shell instead if your question is about a
sh (Bourne or POSIX) script. Before asking for help about problems with bash scripts and shell operands, consider debugging the script yourself first.
Links and documentation
- shell Many shell-agnostic questions are of interest to bash users.
- wildcards (or globbing): matching files based on their name
- command-history a history of commands that can be navigated with the
Downkeys, searched, etc.; also a recall mechanism based on expanding sequences beginning with
- autocomplete completion of partially-entered file names, command names, options and other arguments.
- prompt showing a prompt before each command, which many users like to configure.
- readline the GNU library implementing the line editing and history handling in
bash(and other terminal applications like
- alias used to define shortcuts for frequently used commands.
Frequently Asked Questions
- What features are in zsh and missing from bash, or vice versa?
- Change directory without typing cd?
- Understanding the exclamation mark (!) in bash
- Preserve bash history in multiple terminal windows
- Bash autocomplete in ssh session
- How do I clear Bash's cache of paths to executables?
- Command-line completion from command history
- In Bash, when to alias, when to script, and when to write a function?
- How to do integer & float calculations, in bash or other languages/frameworks?
- Why is my bash prompt getting bugged when I browse the history? (and other editing weirdness)