This is a crash course in using Linux servers–anything more than a cursory look would require a dedicated class. There’s a lot to learn here; you don’t need to do it all at once, since this is mostly meant as a foundation for future lessons. Outside of what’s mentioned in the study guide, you don’t need to memorize specifics, but you should know what’s possible and have a general idea of how to accomplish any reasonable shell task you’re given.

Study guide

  • Know how to navigate a filesystem from the command line
  • Know the components of a file path including “.” and “..
  • Understand file ownership and permissions and how to change them with chown and chmod
  • Know how to redirect the stdin, stdout, and stderr of a command to and from files and other commands
  • Know how to use and set environment variables and how to make them available to child processes
  • Know how to use wildcards to select files based on a pattern
  • Know what aliases, functions, and scripts are and understand their comparative advantages
  • Know some of the most important shell commands like ls, cd, cp, mv, mkdir, and man
  • Know some of the most important environment variables like PATH and PWD
  • Become familiar enough with the shell to accomplish basic tasks there

Readings and Assignments

Reading: Intro to Linux

Reading: Navigating Filesystems

Reading: Users and Permissions

Reading: I/O Streams

Reading: Command Sequencing

Reading: Processes

Reading: Environment Variables

Reading: Aliases, Functions, and Scripts

Assignment: Treasure Hunt