See also đ Linux and Unix, tmux, Vim, cron, Bash - Notes
Core
- Bash scripting cheatsheet - my favourite Bash cheat sheet (clean)
- awesome-cheatsheets/blob/master/languages/bash.sh from LeCoupa
- Explain Shell is a very handy website that gives you breakdowns of Bash commands which the manual pages rather helpfully displayed inline. The relevant help highlights when you hover over part of the command and in general, the websiteâs UI makes understanding shell commands much easier by making them digestible.
- ShellCheck - ShellCheck in the browser for on-the-fly checks outside VSCode
Docs
- Bash Builtins (Bash Reference Manual) - Builtin commands are contained within the shell itself. When the name of a builtin command is used as the first word of a simple command, the shell executes the command directly, without invoking another program. Builtin commands are necessary to implement functionality impossible or inconvenient to obtain with separate utilities. See also Bourne Shell Builtins (Bash Reference Manual)
- Bourne Shell Builtins (Bash Reference Manual) - many of these are inherited by Bash
- Special Builtins (Bash Reference Manual) - this subset of commands are treated differently when Bash is executing in POSIX mode
VSCode extensions
- shell-format - deals with shellscript, Dockerfile, properties, gitignore, dotenv, hosts, jvmoptions. Publisher: foxundermoon
- ShellCheck - Integrates ShellCheck into VS Code, a linter for Shell scripts. Publisher: Timon Wong
Guides - oriented at learning
- Advanced Bash-Scripting Guide (Mendel Cooper 2014) - An in-depth exploration of the art of shell scripting (from the Linux Documentation Project)
- Bash Guide for Beginners (Machtelt Garrels 2008) - lots of info including awk, sed and catching signals
- Shell Ninja Mastering the Art of Shell Scripting Roland HuĂ - nice talk on great practices for using Bash (accompanying code)
Advanced Resources and Troubleshooting
- Bash Strict Mode - very good, short article from Aaron Maxwell (amax at redsymbol dot net). I found the section on Issues & Solutions especially helpful which lists how to handle:
- mohanpedala/bash_strict_mode.md - same recommendations as Bash Strict Mode, in a compact Gist
- Bash Colors - ShellHacks
- Difference between
$*
,"$*"
and"$@"
- This Unix and Linux Stack Exchange question disambiguates$*
,"$*"
and"$@"
as means of collecting a sequence of arguments. (Question title: What is the difference between$*
and$@
?) - BashPitfalls - Gregâs Wiki - densely written but very useful
- the problem with this article is that it is indexed in terms of the mistakes, and not themes or commonly performed tasks
Bash commands / concepts I wish I understood better
- lsof
- correct termination of the command passed for execution using
xargs
orfind
with-exec