UNIX Programming Tools
Course Number: G22.2245-001
Instructor: Danielle Lahmani, lahmani@cs.nyu.edu
Time: Thursday 5-7PM
Office Hours: Thursdays 3:30-4:30PM, Room 401 WWH



Please subscribe to the course mailing list. To do so, send email to majordomo@cs.nyu.edu with the following body (not subject):
subscribe g22_2245_001_sp99


Jianbo Peng
Office: Rm 422 WWH
251 Mercer St
Office hours: Wednesdays 4:30 PM-5:30PM
Tel: 998-3083

Zhang Xiaoge
Office: 715 Broadway, Rm 1013
Office Hours: Thursdays 2:00PM-3:0OPM
Tel: 998-3009

Required Text

UNIX for Programmers and Users, Graham Glass, 2nd Edition, Prentice Hall,


This is a graduate course in computer science on UNIX programming tools. This course introduces the UNIX operating system and it provides a description of user level tools available to users and programmers. It also describes UNIX system programming tools and UNIX internals. Some administrative tools for backup and security will also be presented.

This course requires an understanding of high level operating systems and a working knowledge of high level programming languages. It will focus on how to get things done in UNIX and will cover the following topics:

  1. What makes UNIX unique: its environment and philosophy
  2. the UNIX shells: the command interpreter languages
  3. Important utilities in UNIX: find, grep, tar, cpio and others
  4. C programming tools: MAKE, libraries and debugging
  5. Networking Utilities and Environment: for example, rlogin, telnet, ftp, and NFS: the network file system.
  6. System programming highlights: system calls, files, processes, sockets and pipes
  7. Overview of Operating system Internals: kernel, inodes, files and processes
  8. System administration tools for backup and security

There will be several written and programming assignments and one final project for the course.


homework 1
homework 2
homework 3
homework 4
homework 5
Take Home Final

Shell scripts examples


sed examples


perl examples


awk examples