Lecture Slides and Notes
These will be published progressively here during the unit.
- Editors; the unix philosophy; file systems
- Variables, control flow, expansion and quoting
- Regular expressions
Practical work for this unit will be done during the workshops.
- Week 1 exercises
- Week 4 exercises
- Week 5 exercises
- Week 6 exercises
- Week 7 exercises
- Week 8 exercises
- Week 9 exercises
- Week 10 exercises
- 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.
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 http://linuxcommand.org/tlcl.php.
Also available via:
Quite comprehensive, besides being free :-)
- Arnold Robbins and Nelson H.F. Beebe, Classic Shell Scripting.
Available on Amazon: https://www.amazon.com/Classic-Shell-Scripting-Arnold-Robbins/dp/0596005954 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.
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”).
- the UWA library, for online reading (log into OneSearch, and search on the title)
- Amazon: https://www.amazon.
- The Art of Unix Programming, by Eric Steven Raymond, 2003 Chapters 1 and 5 are the most relevant.
In addition, some other good Chapters/Sections that are not too long or dry (in order of relevance), are:
Ch 10 - Configuration: What Should be Configurable?; Environment Variables; Command-Line Options
Ch 11 - Unix Interface Design Patterns: The Filter Pattern - The ed Pattern
Ch 19 - Open Source
Ch 16 - Reuse
- Open Sources: Voices from the Open Source Revolution, O'Reilly publishers, 1999,
a number of short essays by famous open-source identities.
- The Unix Tools Are Your Friends, by Diomidis Spinellis, 2009,
explains why the Unix tool chest can be more useful than an Integrated Development Environment (IDE).
- Frequently used Unix commands.
- Linux vs. Unix: What's the difference?, by Phil Estes, opensource.com.
Simple text editing with vi/vim
Introductions to Bash
- The Command Line Crash Course
- Bash Guide for Beginners, by Machtelt Garrels.
- Introduction to Linux - A Hands on Guide, by Machtelt Garrels.
- Bash Shell Scripting, by Wikibooks.
- all the special (punctuation) symbols in bash (from Wikibooks).
- The Bash Reference Manual PDF (160pp), or HTML pages.
- The Linux Shell Scripting Tutorial, by Vivek Gite.
- Learning the Shell, by William E. Shotts, Jr.
- Writing Shell Scripts, by William E. Shotts, Jr.
- The Linux Command Line (links to PDF), by William E. Shotts, Jr.
- Advanced Bash-Scripting Guide (links to PDF, 901pp), by Mendel Cooper.
Regular expressions, grep and sed
sed and awk
- 17 books for Linux and open source fans, not textbooks, some discussing the effects of open-source on the software industry.
- Understanding Open Source and Free Software Licensing, by Andrew M. St. Laurent,
Chapter 7: Software Development Using Open Source and Free Software Licenses.
- Linux How-Tos, an interesting website with many, many short tutorials.
- Linux 101 Hacks, by Ramesh Natarajan, (free PDF download, 271pp).
- Learning the vi Editor, by Linda Lamb and Arnold Robbins, (read online).
- Unix Power Tools (2nd ed.) by Shelley Powers, Jerry Peek, Tim O'Reilly, Mike Loukides, (read online).
- How Not to Go About a Programming Assignment (PDF), The SIGCSE Bulletin, Vol 36(2), June 2004.
- How to Fail a Programming Assignment (PDF), The SIGCSE Bulletin, Vol 39(2), June 2007.