Next: Lent Term 2004: Part
Up: Michaelmas Term 2003: Part
Previous: Software Engineering and Design
  Contents
Unix Tools
Lecturer: Dr M.G. Kuhn
No. of lectures: 6
Operating Systems provides a useful foundation for this course.
Aims
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.
Lectures
- 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.
Overview of a powerful scripting and text manipulation language.
- LATEX.
Brief guide to learning and using the most popular tool for scientific
typesetting.
Objectives
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 and LATEX
Recommended books
* 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: Lent Term 2004: Part
Up: Michaelmas Term 2003: Part
Previous: Software Engineering and Design
  Contents
Christine Northeast
Thu Sep 4 15:29:01 BST 2003