References & Tools
Official Documentation
The authoritative sources. When a guide and the manual disagree, the manual wins.
- GNU Bash Reference Manual — the complete language and builtin reference, free from the GNU project.
- Bash Reference Manual (single page) — easier to search than the split HTML.
- POSIX Shell Command Language — the standard behind
/bin/sh. - bash(1) man page — what
man bashshows on your machine.
Free Books & Guides
- Greg's Wiki — BashGuide — a modern, correct, free guide (the successor to the defunct Bash Hackers Wiki).
- Greg's Wiki — BashFAQ — answers to the questions every shell programmer asks.
- Greg's Wiki — BashPitfalls — the classic mistakes, with fixes.
- Bash Guide for Beginners (TLDP) — a gentle, complete introduction.
- Advanced Bash-Scripting Guide (TLDP) — vast, though not always idiomatic; read critically.
- The Pure Bash Bible — pure-Bash replacements for external tools, free on GitHub.
Style Guides & Standards
- Google Shell Style Guide — pragmatic rules used across Google's shell code.
- ShellCheck Wiki — an explanation for every ShellCheck code.
- ShellCheck source (GitHub) — install instructions and integration list.
Tools & Linters
- ShellCheck online — paste a script and get warnings in the browser.
- explainshell — paste a command line and see each part explained.
- bats-core — Bash Automated Testing System, free and open source.
- shfmt — a shell formatter to keep style consistent.
Practice & Games
- LearnShell.org — an interactive browser tutorial you can type into.
- OverTheWire: Bandit — learn the shell by solving SSH puzzles.
- Exercism — Bash track — mentored exercises, free.
- Command Line Challenge — short tasks that test one-liners.
Sample Repositories
- awesome-bash — a curated list of frameworks, tools and resources.
- ShellCheck test suite — hundreds of small scripts showing correct and incorrect patterns.
- awesome-cli-apps — real command-line programs written in Bash and friends.
- neofetch — a large, readable, purely-Bash program to study.
How to Choose
- Learning from scratch: TLDP Beginners Guide, then Greg's BashGuide.
- Checking a specific behaviour: the GNU manual and
man bash. - Fixing a script: ShellCheck first, then BashPitfalls.
- Building a habit: the Google Shell Style Guide and a test suite with bats.
- Practising: LearnShell, then Bandit or Exercism once the basics feel solid.
All resources above are free to read. Bash Hackers Wiki (wiki.bash-hackers.org) is no longer maintained and is intentionally not listed; Greg's Wiki covers the same ground and is kept current.