CS114: UNIX Tools
Fall Semester 2006
When: September 25 - October 20 MWF 12:20 - 1:05p
Where: Philips Hall 203
Instructor: Richard Yamada
Email: ry38 $$ at $$ cs.cornell.edu
Office: 657 Rhodes Hall
Office hours: By appointment only (please email me)
Grading: S/U only
Course Information |Announcements | Assignments | Lecture Notes and Schedule | Other Useful Information | Links
Course Information
Course guidelines and class information can be found here: Course Handout
Top
Announcements
10/23/2006 - Graded homeworks and finals will be available in my mailbox after all assignments have been turned in. Also, the links to my lecture notes, homeworks, and finals will be disabled at the end of this week. Have a good rest of the fall semester!
10/19/2006 - Hardcopies of the exam will be available in my mailbox starting at 4PM. I will post the exam on the web around 5PM. Please check this site in case there are any further comments/corrections about the exam. YOU WILL RECEIVE PARTIAL CREDIT FOR YOUR ANSWERS, SO YOU SHOULD TRY ANSWERING EVERY QUESTION.
10/18/1006 - By the start of today's lecture, you would have read lectures 1-8 of the 2004 lecture notes. You should start reviewing material in this course in preparation for your exam tommorrow.
10/16/2006 - Since we will cover basic shell scripting on Weds, homework 2 will be due at 5PM October 19th.
10/11/2006 - By now, you should have read lectures 1-5 of the 2004 lecture notes. By next Weds please finish reading lectures 6, 7, and 8.
10/4/2006 - I handed out the mid-course survey at the end of class today. The survey is optional, but will help me give an idea of how the class is going overall. ALSO, I will be in the ACCEL lab from 4:30 to 5:50 PM today. Also, for those of you reading the 2004 lecture notes, by now you should have
read lectures 1, 2, and 5. By next Weds please read lectures 3 and 4.
10/2/2006 - I will be holding a optional Linux help seesion this Weds 10/4/2006 in the ACCEL lab in Carpenter Hall from 4:30 PM - 6:30 PM. You need to email me if you are interested. If I do not get any emails, I will not be in the ACCEL lab.
9/25/06 - If you need a CSUG account you MUST attend this class. Also, please use the Linux machines in CS UG lab to complete the assignments if you do not have access to Linux. 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. Also, PLEASE fill out the survey that I will hand out during class. Results of the survey will be discussed on Weds, and will give me a better idea what topics to focus on!
Top
Assignments
NOTE: Homeworks and final must be submitted by 5 p.m. on the due date. Please drop hardcopies off in my mail file folder in Rhodes 657 (Once you are in Rhodes 657, walk straight ahead 20 feet, and the file folders will be on your left. There is also a sign from the ceiling)
Top
Lecture Notes and Schedule
I will post my own notes for a limited time for some of the 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. Previous years lectures notes are posted at:
2004
and 2003. I may also post example scripts, etc.
that I use in class.
Below is schedule for the course:
Lecture 1: overview of the course/introduction to Unix
Lecture 2: history of Unix/Unix philosophy/Linux vs Unix/basic commands
Lecture 3: basic commands continued
Lecture 4: navigating the file system
Lecture 5: file systems continued/useful Linux tools
Lecture 6: vi and emacs editors
Lecture 7: shells revisited
Lecture 8: regular expressions and non-interactive editors - tr and sed
Lecture 9: awk and gawk
Lecture 10: shell scripting basics
Lecture 11: EXAM
Additional information about the topics covered during the class can be found in the following references:
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
Michael chapters 1, 2; Koch chapter 28; 2003 and 2004 course notes
Top
Please do not take this class if you do not think
that you'll be able to turn in all of the assignments on time.
All auditors/visitors are welcome. However, priority will be given to those taking this class for credit.
Relevant Books
There are many good books on UNIX and UNIX tools available. Here is a list
that you may find helpful. Some are available electronically from the Cornell
Library:
- Just Enough Unix, 4th Edition, P. K. Andersen
- UNIX in a Nutshell, A. Robbins (available electronically from Cornell library)
- 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. If you did not pre-enroll for the course, please come to the first day of class, and sign in. I will request a
CSUG account for you after class. If you are not taking the course for credit, you WILL NOT get a CSUG account for the course.
Below are some useful links related to your CSUG account:
Using UNIX in the CSUG lab
Setting your CSUG password
Setting up SSH
Accessing CSUG lab computers from outside the lab
Top
Other Helpful Links
The Free Software Foundation's GNU page -- these folks are the source
for many of the standard versions of UNIX programs
Top