CS 2044: Advanced Unix Tools
Spring 2011
MWF 8:00-8:50 AM, 216 Olin Hall
Announcements
Most recent first:
Course description
A focus on GNU Linux/Unix as a programming environment for people with a basic knowledge of
Linux/Unix and experience programming in at least one language. Projects cover advanced shell
scripts (bash) Makefiles, and more modern scripting languages such as Perl and Python. Students
with little or no experience with Unix should take CS 2042 first.
CS 2044 is a four week, one credit, S/U only course. It runs
February 21 to March 18, 2011. The drop deadline is 02/28/11, one week
into the course. The course number is: 8456.
Instructor
- Hussam Abu-Libdeh
- Email: hussam + cs.cornell.edu (replace + with @)
- Office hours: Wednesday's 12pm - 1pm in 4139 Upson Hall
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 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
- 2/21/2011 Lecture 1: Unix basics
- 2/23/2011 Lecture 2: Basic Unix tools
- 2/25/2011 Lecture 3: grep and sed
- 2/28/2011 Lecture 4: Bash scripting: variables, conditionals, loops
- 3/2/2011 Lecture 5: In class scripting session. (there will be no slides, but I'll post the scripts we create here after class)
- 3/4/2011 Lecture 6: Starting Python
- 3/7/2011 Class canceled due to bad weather.
- 3/9/2011 Lecture 7: More Python
- 3/11/2011 Lecture 8: In class Python scripting.
- 3/14/2011 Lecture 9: Automation; periodic execution with 'cron', compiling with 'make'
- 3/16/2011 Lecture10: Managing software installations (using apt-get) and plotting using GNUPLOT
- 3/18/2011 Lecture11: Q/A about HW3 and networking programming in Python. By popular request, a quick tour of RubyOnRails
Homework
Very Useful links
- UNIX shells and scripts
- Perl
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
-
Programming Perl (3rd ed), L. Wall, T. Christiansen, and J. Orwant, O'Reilly, 2000
- the standard introduction to Perl
-
Mastering Regular Expressions, J. Fried, O'Reilly, 1997
- in-depth presentation of the use of regular expressions for manipulating text and data; a special chapter is dedicated to Perl
Miscellaneous
- 2/12/2008: One of the many links discussing scripting languages (WWW Journal, vol.2, spring '97)
- 2/12/2008: UNIX history as experienced by its creators: Dennis Ritchie's webpage
Credit: This site's content and links are gratefully taken from David Slater