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
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:
- Just Enough Unix, 4th Edition, P. K. Andersen
- UNIX in a Nutshell, A. Robbins (available electronically from Cornell library)
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:
- The Complete Idiot's Guide to UNIX, B. Wagner
- Learning the UNIX Operating System, G. Todino, et. al.
- Practical UNIX J. Koch, et. al.
- Mastering Unix Shell Scripting, R. K. Michael
- UNIX Shell Programming Tools, D. Medinets
- Sed & Awk D. Dougherty
- Learning the vi Editor L. Lamb and A. Robbins
- GNU Emacs Pocket Reference D. Cameron
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