Bash

Bashism

Q&A

Q: What do all those different types of brackets do?

See a for an overview. Additionally, refer to b for documentation on parameter expansions (like ${PATH:+:$PATH}).

Q: What are those bangs (!)?

They are history expansion characters. See c for a quick introduction. Full reference is provided in d of the bash manual.