We start by introducing the key ideas and advantages of Unix tools. We then build many one-liners around the tools that follow a sequence of fetching, selection, processing, summarization and reporting. We demonstrate the tools for each phase: the plumbing that joins the parts into a whole, more specialized commands for handling software development and system administration tasks, sound and images and even graph-structures. We end with a discussion of common use patterns to follow and anti-patterns to avoid.
Week 1 Introduction — Getting to the Command Line; The command-line interface; Input and output redirection; Files and directories; Command-line arguments; Command grouping; Scripting
Week 2 Execution control; Data processing flow; Data fetching: Remote services, archives, remote hosts, and the file system
Week 3 Data fetching: Version control systems, compiled code, graphical desktop systems, and system administration; Data generation; Regular expressions and data selection with grep, egrep, and fgrep
Week 4 Other data selection tools; Processing: Sorting, working with sorted data, sed, awk
Week 5 Processing: File differences, testing, and expressions dealing with characters, lines, and graphs
Week 6 Processing images and sound; Summarizing; Reporting: Email and text formatting; Good shell practices; Improving your shell style
Throughout the course you’ll be monitoring your progress through more than 110 knowledge checks. Furthermore, five progress assessments interspersed throughout the course will allow you to demonstrate in practice how you deploy your newly acquired skills by completing about 20 carefully selected tasks modeled after real-life scenarios. Many of the questions will set you off on a virtual treasure hunt, providing you with the opportunity to experiment with what you’ve learned in order to derive the right answer.