Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Computer Science Syllabus - Unix Tools
Computer Laboratory > Computer Science Syllabus - Unix Tools

Unix Tools next up previous contents
Next: Lent Term 2006: Part Up: Michaelmas Term 2005: Part Previous: Operating Systems II   Contents

Unix Tools

Lecturer: Dr M.G. Kuhn

No. of lectures: 8

Operating Systems provides a useful foundation for this course.


This non-examinable course gives students with little Unix/Linux experience a basic understanding of the use of the shell and some popular development utilities. These skills will be important for future practical CST project work.


  • Unix background and shell basics. Unix history and design philosophy. Inter-process communication mechanisms and conventions (command-line arguments, environment variables, files, directories, plain text format, pipes, standard I/O, signals, process groups, locale). Using the shell (bash) for file system navigation, program invocation, piping and job control. Finding documentation.

  • Shell script programming and configuration. Efficient command entry with history and alias functions. Regular expressions. The shell as a simple scripting language with parameter substitution, control structures, functions. Customising user environment with start-up scripts. Basics of X Window System configuration. Some notes on PWF Linux.

  • Common tools. Overview of common text, shell, and network utilities and their most frequently used options.

  • Software development tools. C compiler, linker and debugger. Makefiles, packaging and compression tools, patch generation and application, revision control systems (RCS, CVS).

  • Perl. Introduction to a powerful scripting and text manipulation language. [2 lectures]

  • LATEX. Typesetting basics, introduction to the most popular tool for scientific document formatting.

  • MATLAB. Use of MATLAB on PWF machines to perform numerical experiments and visualise the results in homework exercises.


At the end of the course students should

  • be confident in performing routine user tasks on a POSIX system, understand command-line user-interface conventions and know how to find more detailed documentation

  • appreciate how a range of simple tools can be combined with little effort in pipes and scripts to perform a large variety of tasks

  • be familiar with the most common tools, file formats and configuration practices used

  • appreciate how using revision control systems and fully automated build processes helps to maintain reproducibility and audit trails during software development

  • know enough about basic development tools to be able to install and modify openly available C source code

  • have some idea of the capabilities of Perl, LATEX and MATLAB

Recommended reading

* Lamport, L. (1994). LATEX - a documentation preparation system user's guide and reference manual. Addison-Wesley (2nd ed.).
Robbins, A. & Gilly, D. (1999). Unix in a nutshell. O'Reilly (3rd ed.).
Schwartz, R.L. & Phoenix, T. (2001). Learning Perl. O'Reilly (3rd ed.).

next up previous contents
Next: Lent Term 2006: Part Up: Michaelmas Term 2005: Part Previous: Operating Systems II   Contents
Christine Northeast
Sun Sep 11 15:46:50 BST 2005