This list is not meant to be complete. Links have been extracted from the lecture and reorganized trying to follow the lecture order of topics. Links to the Bash manual have been adjusted to point to the HTML version and, hence, to the correct section. This might break in the future, though. Links meant for future reference to go beyond the slides content.
- Overview
- Quoting special characters
- Variables
- Special parameters
- Shell expansion
- Globs
- Conditionals
- Colors cursor movements
- Input/Output
- Shell options
- GNU_Coreutils
- File descriptors
- Compound commands
- Functions
- Autocompletion
- GNU Readline
- Asynchronous commands
- Error handling
- Sed
- Awk
- Good practices
- Useful tools
- Bash in real life
- Disclaimer
- Bash
- Bash logo
- Download Bash
- Bash weaknesses
- Change default shell on macOS
- Bash official manual
- List of Bash builtins with descriptions
- Notable changes in released Bash versions
- More detailed list of changes in Bash versions
- A nice Bash cheat-sheet
- Google Shell Style Guide
- A (sadly not maintained) Bash library
- An online help to get relevant manual pages of a given command
- Bash Beginners Guide
- Shell scripting tutorial
- Bash Guide a.k.a. Greg's Wiki
- «Clean code» and «Clean testing»
- Localization support
- Quotes
- History expansion
- Advanced reading:
$(...)
versus`...`
- Advanced reading: difference between
test
,[
and[[
- Obsolete and deprecated syntax
- Shell expansion
- Parameter expansion
- Command substitution
- Process substitution
- Shell arithmetic
- The directory stack
- Bash in POSIX Mode (item 30)
- GNU coreutils manual
- Decoded: GNU coreutils
- Cheat-sheet
- util-linux on GitHub
- util-linux on Wikipedia
- An issue about
column
- Close FD open for read/write
- Pipes must have a reader and a writer
- The full story about process substitution not being waited for
- Greg's Wiki about
set -e
- David Pashley about
set -e
- Simple Command Expansion
- About
set -u
in older Bash versions - Read more about
set -u
- Minor drawbacks of
set -o pipefail
- Tetris
- The official GNU manual
- A very nice tutorial
- One-liners, with some comments
- More one-liners, explained but advanced!
- Basic Regular Expression (BRE)
- Extended Regular Expression (ERE)
- Bash manual section 3.5.4
- Bash Pitfalls
- Clean code good practices
- Download Bash
- Instructive and very encouraged reading
- Obsolete and deprecated syntax
- Shell Hall of Shame
- Shell unit test framework
- Clean testing
- ShellCheck
- Use ShellCheck it online
- ShellCheck Wiki example
yq
jq
This collection was extracted from the TeX/Slides folder using a admittedly horrendous pipeline, which is reported here below. The output was then edited by hand.
grep -rno '\\URL[^{]*{[^}]*}{[^}]*}' . |\
awk '
BEGIN{FS=":"; OFS=":"}
{
texfile=$1;
texfile=gensub(/^[.]\/(.*)[.]tex$/, "\\1", "g", texfile);
printf "%40s %s\n", texfile, substr($0, index($0,$3))
}' |\
awk '
{
if($1 != section)
{
printf "#### %s\n", $1
};
section=$1
}
{
$1="";
printf " - %s\n", $0
}' |\
awk '
BEGIN{FS="[{}]"}
$1 ~ /^1/ {print "\n"$0"\n"; next}
$1 ~ /URL/ {url=$2; printf " - [%s](%s)\n", substr($0,index($0,$4)), url}' |\
sed 's/}]/]/' | less -r