CS114: UNIX Tools

Fall Semester 2005
When: September 26 - October 21 MWF 12:20 - 1:10p
Where: Philips Hall 203
Instructor: Erik Sherwood
Email: wes28 - at - cs.cornell.edu
Office: 657 Rhodes Hall
Office hours: WEDNESDAY 2:30 - 3:30, or by appointment
Grading: S/U only

Announcements | Assignments | Lecture Notes and Schedule | Course Info | Useful links

Announcements


10/13 - Here are some links to two Bourne shell and shell scripting tutorials that you may find useful: Shell scripts in 20 pages and How to write a shell script. The first one includes a comprehensive list of conditional tests.
10/6 - IMPORTANT: When changing your shell using chsh or ypchsh, be sure that you give the complete absolute path to the shell you want to be your new login shell, e.g. /bin/tcsh NOT tcsh. Failure to do this properly may result in you being unable to login properly!
10/6 - There was a typo in problem 1 of homework 2. You need to copy the /usr/share/skel/bashrc:Linux.2 to your home directory, not /usr/share/bashrc:Linux.2.
9/30 - Please use the Linux machines in CS UG lab to complete the assignments. You can ssh to csug0x.csuglab.cornell.edu, where x is the number 1-6, to access a Linux machine. Do NOT use turing or babbage to do the assignments.

Top

Assignments

Homework 0 - due ASAP!
Homework 1 - due Friday, September 29
Homework 2 - due Wednesday, October 12
Homework 3 - due Friday, October 21

Homeworks should be submitted by 5 p.m. on the due date.

Top

Lecture Notes and Schedule

I will not post my own notes for most lectures. There are plenty of very good webpages and books on these topics already available, and I see no reason for me to go to the effort to reproduce them. I will provide pointers to the pertinent reading. In previous years, summmary course notes were posted. They are still available for 2004 and 2003. I will post example scripts, etc. that I use in class.

Below is a tentative schedule:

Topic 1: Introduction to UNIX, files and security
Reading: Robbins chapter 2; Wagner chapters 4, 6, and appendix A; Todino chapters 1, 3, 4; 2003, 2004 course notes.

Topic 2: Text editing
Reading: Koch chapter 20; Robbins chapters 7, 8; Lamb chapters 1-4; Cameron chapters 1-5

Topic 3: Shells and variables
Reading: Robbins chapters 3, 4, 5; Todino chapter 5; 2003, 2004 course notes

Topic 4: Jobs, I/O, redirection
Reading: Todino chapters 5, 6; Koch chapter 7;

Topic 5: Regular expressions, text processing
Reading: Robbins chapters 6, 10, 11; Medinets chapter 8; Dougherty chapters 1-5

Topic 6: Shell scripting
Reading: Koch chapter 28; Michael chapters 1, 2; Medinets chapters 1, 2, 3, 4, 5, 8, 11

Topic 7: UNIX programming tools, gdb, makefiles
Reading: Robbins chapters 19, 20

Top

Course Info

Course Content

The goal of this course is to become familiar with the UNIX operating system and UNIX programming tools. From the course catalogue: "An introduction to Unix, emphasizing instruction in tools for file management, communication, process control, and program development."

I will assume that you have taken a college-level programming course at the level of CS100.

Please do not take this class if you do not anticipate being able to attend the lectures, or if you don't think that you'll be able to turn in all of the assignments on time.

All auditors/visitors are welcome.

Textbooks

There are many good books on UNIX and UNIX tools available. None of them are required for this course. In past years, the two recommended texts were: It is probably a good idea for you to buy at least one book to keep for future reference; of the two above, Robbins is probably the best reference, since it summarizes most useful commands, etc. It does not provide much in the way of tutorials.

There are several useful books that are available electronically from the Cornell library. I will refer to their contents during the course:

UNIX Accounts

You will need a CS Ugrad account to do the assignments for this course. If you pre-enrolled for the course, a CSUG account has been requested for you. I will request a CSUG account for people taking the course for credit who fill out the sign up sheet on the first day of class. If you are not taking the course for credit, you cannot get a CSUG account for the course. Useful links:

Using UNIX in the CSUG lab
Setting your CSUG password
Setting up SSH
Accessing CSUG lab computers from outside the lab

Top

Helpful links

The Free Software Foundation's GNU page -- these folks are the source for many of the standard versions of UNIX programs

Top