The chapter on one page: what to remember, the commands to have at your fingertips, and flashcards for quick revision.
The chapter in eight sentences
A script is a file of commands with a #!/bin/bash first line and the execute bit set; run it with ./script, bash script, by name through PATH, or source it into the current shell.
Inside a script, $1, $2 … are arguments, $# their number, "$@" all of them (quote it!), $0 the script's name and $? the last exit status.
Variables are set name=value with no spaces and read $name; $(command) substitutes output, $((…)) calculates, ${v:-default} supplies a default.
Exit status 0 means success; scripts should print errors to standard error (>&2) and use exit 1 (error) or exit 2 (usage).
[ … ] tests files, numbers and strings; if / elif / else, case, for and while make decisions and repeat; while IFS=: read processes files line by line.
cron schedules by five fields (minute hour day-of-month month day-of-week); personal jobs via crontab -e, system jobs in /etc/cron.d with a user column.
cron jobs get a minimal environment: use full paths, redirect output, escape % as \%, and read /var/log/cron.
A systemd timer is a .timer plus a .service (Type=oneshot) with OnCalendar and Persistent=true, enabled with systemctl enable --now NAME.timer; at runs a job once.