Learning the shell -- What Is the shell? -- Navigation -- Exploring the system -- Manipulating files and directories -- Working with commands -- Redirection -- Seeing the world as the shell sees it -- Advanced keyboard tricks -- Permissions -- Processes -- Configuration and the environment -- The environment -- A gentle introduction to vi -- Customizing the prompt -- Common tasks and essential tools -- Package management -- Storage media -- Networking -- Searching for files -- Archiving and backup -- Regular expressions -- Text processing -- Formatting output -- Printing -- Compiling programs -- Writing shell scripts -- Writing your first script -- Starting a project -- Top-down design -- Flow control: branching with if -- Reading keyboard input -- Flow control: looping with while and until -- Troubleshooting -- Flow control: branching with case -- Positional parameters -- Flow control: looping with for -- Strings and numbers -- Arrays -- Exotica