Official docs outline
20 sections- Shell syntax
Shell operation, tokenization, commands and reserved words.
- Quoting
Escape characters, single and double quotes, ANSI-C quoting and locale translation.
- Simple commands, pipelines and lists
Command execution, pipelines, exit status, and lists with ;, &&, || and &.
- Conditional and looping constructs
if, case, [[ ]], for, while, until, select and (( )) arithmetic.
- Shell functions
Defining functions, arguments, return values, local variables and recursion.
- Shell parameters and variables
Variables, positional and special parameters, environment and exported variables.
- Shell expansions
Brace, tilde, parameter, command and arithmetic expansion, word splitting and filename globbing.
- Parameter expansion
Default values, substring, pattern removal, substitution and case modification.
- Redirections
File descriptors, >, >>, <, here documents, here strings and duplicating descriptors.
- Process substitution and command substitution
<(cmd) and >(cmd), subshells and command substitution.
- Arrays
Indexed and associative arrays, iteration and expansion of elements.
- Shell arithmetic
Integer arithmetic, operators, bases and let/(( )).
- Executing commands
Command search and execution, environment, exit status and signals.
- Shell scripts
Shebang lines, running scripts and positional arguments.
- Shell builtin commands
cd, read, set, shopt, trap, test, printf, getopts and other builtins.
- The set and shopt builtins
errexit, nounset, pipefail, noglob and shell option control.
- Signals and traps
Signal handling, trap, and behaviour of interactive vs non-interactive shells.
- Job control
Background jobs, fg/bg, jobs, disown and job specifications.
- Bash conditional expressions
File, string and numeric tests used with [ ], [[ ]] and test.
- Interactive shell features
Startup files, prompts, history, readline and programmable completion.
Each section links to the official page. Titles and summaries by Extra Credit; the docs belong to their authors.