The University of Western Australia
School of Computer Science and Software Engineering

School of Computer Science and Software Engineering

CITS4407 Open Source Tools and Scripting


Lecture Slides and Notes

These will be published progressively here during the unit.

  1. Introduction
  2. Editors; the unix philosophy; file systems
  3. Variables, control flow, expansion and quoting
  4. Regular expressions

Workshop exercises

Practical work for this unit will be done during the workshops.

  1. Week 1 exercises
  2. Week 4 exercises
  3. Week 5 exercises
  4. Week 6 exercises
  5. Week 7 exercises
  6. Week 8 exercises
  7. Week 9 exercises
  8. Week 10 exercises
  9. Week 11 exercises


The project (worth 30%) has been released, and is due on 19th May: see here.


Information about the exam is available here.

Linux setup


There is no one textbook that covers all the content of this unit. However, there are some that cover quite a bit of it.

  • William E. Shotts Jr, The Linux Command Line: A Complete Introduction, either 1st or 2nd edition.
    Open sourced, and available for download from
    Also available via: Quite comprehensive, besides being free :-)
  • Arnold Robbins and Nelson H.F. Beebe, Classic Shell Scripting.
    Available on Amazon:  Less comprehensive than Shotts’s book, but has excellent worked examples, covering just the kind of tasks we’ll be looking at.
  • Brian Ward, How Linux Works: What Every Superuser Should Know. 2nd ed.
    Available via:
    • the UWA library, for online reading (log into OneSearch, and search on the title)
    • Amazon:
    A more in-depth, “under the hood” look at Linux than the previous two books. Contains some useful coverage of network services and tools, in chapters 10 (“Network Applications and Services”) and 12 (“Moving Files Across the Network”).

Introductory reading

Simple text editing with vi/vim

Introductions to Bash

Regular expressions, grep and sed

sed and awk