CS2042: Unix Tools
Fall 2010
MWF 12:20-1:10 PM, Philips Hall 203
Announcements
Most recent first:
Course description
An introduction to Unix, emphasizing tools for file management, communication, process control, managing your Unix environment, and rudimentary shell scripts. Knowledge of at least one programming lanugauge is encouraged. Assignments assume no previous knowledge of Unix or expertise in any particular language..
CS242 is a four week, one credit, S/U only course. It runs
September 8 to October 4, 2010. The drop deadline is 09/15/10, one week
into the course. The course number is: 4939.
Instructor
- Hussam Abu-Libdeh
- Email: hussam + cs.cornell.edu (replace + with @)
- Office hours: email me for an appointment.
Grading and course policies
There will be no official textbook for this course; below you may find some books and websites that might be helpful. There are many books on this subject, so pick your favorite one. Feel free to contact me if you have any questions about this course.
There will be 3 or 4 (most likely) homework assignments. You must complete all these assignments to pass this class. Please take a look at
Cornell University Code of Academic Integrity. Please
follow these guidelines when submitting your work.
Lectures
- 9/8/2010 Lecture 1 A brief intro to Unix history.
- 9/10/2010 Lecture 2 Moving around the Unix file system, file ownership, and permissions.
- 9/13/2010 Lecture 3 Variables and more in Bash.
- 9/15/2010 Lecture 4 Looking for things; using 'find' and 'grep'.
- 9/17/2010 Lecture 5 Input redirection + using 'sort' + 'uniq' + 'tr' + 'sed'.
- 9/20/2010 Lecture 6 Remote connections using 'ssh', 'sftp', and 'scp'. Plotting using 'gnuplot'.
- 9/22/2010 Lecture 7 Shell shortcuts + 'gawk'.
- 9/24/2010 Lecture 8 Archiving and compression + Intro to shell scripting.
- 9/27/2010 Lecture 9 Periodic tasks with 'cron' and 'crontab'. Using arguments and if/else conditionals in bash shell scripting.
- 9/29/2010 Lecture 10 A very quick taste of Vim. Managing processes.
- 10/1/2010 Lecture 11 Terminal sessions with 'screen'. Using loops in bash shell scripting.
- 10/4/2010 Lecture 12 Recap.
Homework
Very Useful links
Useful (but not required) books
- UNIX Shells by Example (2nd ed), E. Quigley,
Prentice
Hall,2000
- excellent presentation of all five
leading UNIX shells: C, Bourne, Korn, Bash, and tcsh; also covers three
main utilities in UNIX: grep (for searching), sed (for editing), and
awk (for scripting).
- UNIX in a Nutshell, A. Robbins, O'Reilly, 1999
- good general reference, contains alphabetized listing
of
core UNIX commands, and documentation on editors like Emacs, ex and vi,
among others
Miscellaneous
- One of the many links discussing scripting languages (WWW Journal, vol.2, spring '97)
- UNIX history as experienced by its creators: Dennis
Ritchie's
webpage
Credit: This site's content and links are gratefully taken from David Slater