CS223 – Course Purpose

The main goal for this class is for you to learn to use the Linux/UNIX command line to perform typical user actions. If you successfully complete the class you should be able to type the commands necessary to login to a UNIX/Linux computer, move around the file system, work with files and folders, do basic tasks such as creating, copying, editing and deleting files and folders, reading and manipulating file and folder permissions, using pipes and redirects, and combining everything you’ve learned to create shell scripts.

At first glance this might not seem too hard, because Linux has a Graphical User Interface (GUI) which means if you can use Microsoft Windows or the MAC OS and a mouse you can probably use Linux/UNIX. After all with a GUI it’s just pointing and clicking, and dragging and dropping. However, Linux/UNIX also has a very powerful Command Line Interface, where you type commands; and this is the main thing you will learn in this class. For example, you will learn what the command displayed on the screen means and does.

grep ‘^student[0-9]’ /etc/passwd | sort > students.`date +%m%d%y`

I know, this looks like the cat walked across the keyboard, but the command really means something. By the end of the class you’ll be able to understand this command, and type commands of your own to accomplish some fairly complex tasks.

Learning how to type and use Linux/UNIX commands may seem a little backward; it’s like learning DOS when you want to be a Windows Admin. And in fact, I get students every quarter who can’t understand how this will ever help them. But learning to type commands and use the Linux/UNIX command line is a crucial building block for anyone who wants to be a Linux/UNIX Admin. I used the command line all the time when I was a Linux/UNIX Admin, and I still use the command line to take care of the CBC Linux server. Plus I’ve had several former students who have become Linux/UNIX Admins and they tell me it’s all they use.

And on the Windows side there’s something similar called Powershell, which stole many things from LINUX/UNIX, so if you know Linux/UNIX Powershell will be easier to learn. And I know a lot of Windows admins who say they do a ton of work in Powershell.

So you’ll learn how to use the Linux/UNIX command line. And as an extra benefit you’ll get that superior feeling that comes from getting one step closer to learning all the magic computer incantations and becoming a true nerd.

dilbert, by Scott Adams

This class is broken down into the following modules. I’m not going to read the list, but as you can see there are 9 modules. The point is that you’ll be doing different types of activities to gain experience and knowledge in each module, and then taking tests to both provide feedback and check your comprehension.

  1. Class Introduction
  2. Introduction to Linux/UNIX & Linux
  3. Getting Started and Looking Around a Linux/UNIX System
  4. Creating Files and Folders, Transferring Files From Windows & Linux/UNIX Permissions
  5. The vi Editor
  6. Filename Wildcards, Pipes, Redirects & Quotes
  7. Regular Expressions and Pipeline Commands
  8. Linux/UNIX Shells
  9. Shell Programming

One last point. Please keep in mind that this is just a 5 credit class, which means that during most quarters the class will only last 11 weeks. So, like any college class this is barely enough time to provide you with an introduction. It’s not enough time to make you an expert user. Another way to think about the limits on what you’ll learn in a typical college class is to imagine that you have a full time job in this field. Each week on your job you’ll work 40 hours. During a lecture class that meets 4 days per week you would put in 44 hours, or about the same as just 1 week at work. During class you should probably do up to 2 hours of homework for each hour in class, but that’s only another 88 hours. In other words, at best you’re probably going to spend as much time in class as you would in just 3 weeks on the job. Don’t get me wrong, the class provides an opportunity for a lot of hands on experience and if you complete all of the class material you’ll learn a lot. You’ll learn all of the basics but I don’t want you to think that taking this one class will be enough to make you an expert user. Think of this as learning a new language, like French or Mandarin. In an 11 week class you can learn the basics, and be able to hold a simple conversation. But you’ll learn so much more if you go and live in France or China for a year or two.