FILENAME EXPANSION: *, ?, […]
A leading dot and a slash disappear only in filename expansion: the same pattern “*” is seen by case, but not by expansion itself
HERE-DOCUMENTS
The body reaches the command as a single word, and one quote in the delimiter decides whether it arrives as typed
IFS AND FIELD SPLITTING
Two kinds of delimiter: white ones merge into one, non-white ones each cut on their own — and the same value gives one field or four
LOGIC GATES
Seven digital-logic symbols — and how to build six of them from a single element, NAND
THE FLAGS OF OPEN()
FIVE flags of creating a file — and why O_CREAT|O_EXCL is not a faster check but a check and a creation joined into one indivisible act
${…}: FOUR MODIFICATIONS
The colon asks about emptiness too: in the column of the empty variable it changes the answer four times out of four, and in the other two columns none
${…}: TRIMMING BY PATTERN
The sign says from which end to cut and doubling it says how much: from the same path the same pair of patterns takes away either one character or fifteen
THE ORDER OF REDIRECTIONS
Redirections are done from left to right, and “2>&1” copies where the output points at that very moment: the file first — and it holds two lines; the copy first — one
QUOTING IN THE SHELL
29 characters named by the standard, 4 ways to take the meaning off them — and the 3 characters where double quotes stop
read: A LINE INTO VARIABLES
The last variable takes the whole rest of the line, inner spaces and all; without -r the backslash disappears, and a line with no final newline gives status 1 — although the variable is already full
INSERTION SORT
the way cards are ordered in the hand · the trace of one real run
QUICKSORT
splitting around a pivot · the trace of one real run