UNIX for Software Developers

UNIX for Software Developers

"What was it about UNIX that won my heart? [...] 
UNIX is mysterious when you first approach. A little intimidating, too.
But despite an unadorned and often plain presentation, the discerning suitor can tell there's lot going on under the surface."

-- Love and UNIX: An Undying Affection by Thomas Scoville 

"Best lecture EU-West!"
-- Unkown student in lecture evaluation results winter semester 2016/17 

Lecture contents

In the winter semester 2017/18, I will teach Unix for Software Developers which is the english language version of my lecture UNIX f√ľr Softwareentwickler. Course language will be English, including slides and other materials. You can enlist in this course using the OBS. We will take a deeper look at the Unix operating system during the semester from the viewpoint of software developers. This means that besides getting to know Unix' basics, we will develop software for Unix systems. The lecture is intended for Unix beginners as well as advanced Unix practitioners.


Times and Dates

Lecture: every Thursday, starting on October 12, 2017 at 12:30 in D14/111.

Lab: Thursday, starting on October 19, 2017 at 14:15 in D15/004.

Note: Please bring your own laptops/notebooks to the labs, there are no PCs in the lab for you to work on. Also note that we will do some exercises during the lecture on Unix systems from time to time, so bring them to these as well to follow along.

Important: Lab attendance is mandatory and if you miss your first lab, you will lose your seat in the lab to someone else on the waiting list. When you are sick and can't attend, please bring a medical certificate from your doctor.

The OBS will assign a lab group (X or Y) to you automatically.

You need to have shown me all the labs in order to be allowed to take the exam. 


Lab Assignments

Lab assignments will be published on this page to prepare for the lab in advance. You need to have a notebook/laptop with an installed Unix system to solve the assignments (we do this in lab 1).

  1. Lab (Y: 19.10.2017, X: 26.10.2017): Installing and Configuring a Unix System 
  2. Lab (Y: 02.11.2017, X: 09.11.2017): Working with Editors and X Setup
  3. Lab (Y: 16.11.2017, X: 23.11.2017): The Unix Shell, Visualizing Graphs, ZFS Compression Comparison
  4. Lab (Y: 30.11.2017, X: 07.12.2017): ZFS, Shell Programming
  5. Lab (Y: 14.12.2017, X: 21.11.2017): Data Visualizations, grep & awk,
    capitals.txt, population.csv

Lecture Slides and Material

I will publish the script on this page as the lecture progresses. Check back often for updates. Thanks to Frank Moore for submitting typo and grammar fixes.

  1. Lecture overview
  2. Unix overview
  3. Editors
  4. Filesystems, ZFS
  5. Shell
  6. Shell Scripting
  7. Advanced Shell Scripting
  8. grep, sed, awk (soccerleague file)
  9. Ansible


At the end of the semester there will be a written exam to determine the grade for this course. You need to register separately for the exam before the deadline. To be allowed entry for the exam, you need to have solved all lab assignments.

Here is a trial exam of easy difficulty. The solutions are also available to compare with your solution. Note that the actual exam may have more questions and has a higher difficulty.

Some tips on how to study (not just for this course).