The “Unix shell” is the text-based interface originally built for controlling a class of operating systems known as “Unix.” It is still around on Unix-like systems (MacOS and Linux are the most well known) and non-Unix systems (e.g., Windows). All versions of the Unix shell share common commands and utilities, so a tutorial written for one is often applicable to the others, even if it’s aimed at a particular OS like MacOS.

To give yourself the best foundation, I would recommend going through all of these. After you’ve completed one, each later one will introduce a few new concepts or explain things slightly differently. As you learn, though, you’ll become more and more comfortable with the shell, and the later tutorials will fly past, so it shouldn’t take too long.

  • Software Carpentry: The Unix Shell — Nicely presented and well-explained. The first three parts (up through “Working with Files and Directories”) are the most important. The later parts introduce several tools and concepts that you can use to automate tasks and save yourself a lot of time.
  • Mac OS X UNIX Tutorial for Beginners (adapted for OS X from UNIX Tutorial for Beginners) — A great introduction to Unix, files, directories, and the wide variety of commands available on the command line. The Introduction and Tutorials One and Two are important for just about any use of the command line; Three and Four are important when running programs that read or write files; and they all contain really useful tips. Don’t skip the Typographical Conventions section! It is important for helping you understand the examples they give throughout the tutorials.
  • Mac OS X Unix Tutorial — An introduction to the terminal in OS X. Quite detailed. Parts 1-3 are the most relevant to basic usage needed for coursework. [Link goes to an archived version of the site, as the original page itself appears to be gone.]
  • Really Friendly Command Line Intro — A less formal, more conversational approach to teaching some of the basics. You might find this approach better (or worse) for you personally than the above options. It doesn’t cover all of the commands important for CS coursework, though, so don’t rely solely on this one.

And later, after you’ve already gone through a tutorial or two, here are two quick sheet sheets with commands and tips. You can use either one to refresh or quickly look up some concept or command you’ve learned previously.