COP 4342 Unix Tools Spring 2018 Schedule

Class lectures

Mondays and Wednesdays 3:35PM-4:50PM in MCH 201 from January 8 to April 25, except January 15 (Martin Luther King, Jr. Day) and March 12-16 (Spring break).


The midterm and final exams are scheduled in room MCH 201 at the following dates:

Course assignments

Assignment 1 cstest: using system calls in C/C++ to check for file/dir and modes

Assignment 2 csdiff: using system calls in C/C++ to read/write files

Assignment 3 cssh: using system calls in C/C++ to fork/exec processes

Assignment 4 bash programming

Assignment 5 python programming

Assignment (makeup) Google Maps API with bash (an extra programming assignment)


The course lecture notes are a little bit different than usual. No powerpoint. No PDF "slides". Just pure bash without gluten.

Screen Shot

To view these interactive chapter pages:

  1. create a directory with mkdir -p ~/Courses/COP4342/tmp which serves as a "sandbox" location to run interactive demos from pages
  2. download the bash script(s) from the selection of topics below that you want to view
  3. execute chmod +x CHAPTER.pages where CHAPTER.pages is ch1.pages, ch2.pages, etc.
  4. run ./ch1.pages to view the first chapter
  5. if the text is garbled then make sure your TERM environment variable is set to ansi or xterm by executing export TERM=ansi in bash or setenv TERM ansi in tcsh (Mac OS X terminal preferences are best set to xterm-256color)
  6. when viewing these notes with a Windows machine, you can either login to a linprog machine to run the scripts there or install Cygwin which has a bash shell
Chapters will be reviewed in the following order, select the chapter pages to download:
Ch 1 - Introduction
Ch 2 - Getting Started
Ch 3 - Utilities
Ch 4 - The Filesystem
Ch 5 - The Shell
Ch 6 - The Vim Editor
Ch 7 - The Emacs Editor
Ch 8 - Bash
Ch 10 - Bash Programming
Ch 14 - AWK
Ch 15 - SED
Program development - GDB
Program development - GNU Make: sections 2.1-2.7, 3.1, 3.2, 4.1, 4.2, 4.4, 4.6, 4.10, 4.14, 5.1, 5.2, 10.1-10.3, 10.5, 10.7
Ch 12 - Python 2.7 Python tutorial: sections 2, 3, 4.1-4.6, 5.1-5.6, 6.1-6.2, 7, 8.3, 8.6 and 9, see also some simple example Python programs

How to download chapter pages from the command line

To download chapter pages from the command line, execute wget where CHAPTER.pages is ch1.pages, ch2.pages, etc.

From the source

Pages are also available in .txt source form which can be translated to .pages with the downloadable Makefile below. To download the source .txt files use wget, for example wget
If you are interested in generating your own .pages scripts then you are welcome to download the following files for free:
Makefile to generate .pages files from .txt files
gen-pages an AWK script to generate .pages files, this file should be saved as an executable script
pre-pages a common prelude script source file copied by gen-pages to generate a .pages file
demo.txt demo pages, use make demo.pages to generate a demo.pages script

Cautionary XKCD