Pipeline counts
Filter logs through safe text pipelines.
Understand the pattern
Pipelines are a daily Unix skill for triage and reporting.
cat- Read one or more files to standard output without editing their contents.
Reading a source file should precede changing it; avoid printing real secrets.
grep- Select input lines that match a pattern; -i ignores case, -n adds line numbers, and -v inverts selection.
No matches is exit status 1, which is different from a malformed invocation.
wc- Count input. -l counts newline characters, -w counts whitespace-delimited words, and -c counts bytes.
Text without a final newline may have fewer counted lines than visible rows.
journalctl- Read the training journal by unit or a bounded line window.
A relevant unit and time range are more useful than an unfiltered wall of logs.
sort- Order lines before comparing or grouping them; -n compares numerically and -r reverses order.
Alphabetical sorting is not numeric sorting.
uniq- Collapse adjacent duplicate lines; use sort first when duplicates are not already together.
uniq does not find every duplicate in an unsorted stream.
Worked example and expected result
$ cat /var/log/auth.log | grep denied | wc -l2
Exit status: 0. The command completed successfully in the training fixture.
$ journalctl -u ssh | grep refusedMay 26 08:18:33 clairos-learn sshd[118]: password authentication refused May 26 08:21:44 clairos-learn sshd[141]: root login refused by policy
Exit status: 0. The command completed successfully in the training fixture.
$ cat /home/learner/data/ports.txt | sort | uniq22 23 443 80
Exit status: 0. The command completed successfully in the training fixture.
Explain it
Apply it elsewhere
Keep the momentum.
Complete the lab, then explain and apply the pattern.
Next: Port text reviewTry an incident drillAnonymous lesson and mastery progress lasts for this session. Sign in to keep synced lesson XP between sessions; mastery stays device-local. No speed bonus, lost lives, or hint penalties.