The goal of this course is to introduce the students to a Linux operating system. The focus is on practical aspects common to system administrators, end users as well as developers. In this sense, the stress is on the practical tasks covered by the labs. Lectures will provide further background and more complex examples to better arrange and organize the knowledge obtained during the labs.

The course shall give the students an overview of a Linux environment and how it can help them automate and simplify their work. Many of the tools are available in other operating systems as well but we believe that Linux provides the right environment for their seamless integration.

After the course, you shall be able to install Linux and administrate it as a workstation (e.g. to manage your own laptop, server administration is covered by NSWI106 Linux Administration). You shall also understand the principles behind automation of software build and deployment. Last, but not least, you will have a practical knowledge of source code versioning.

The range of covered topics is quite broad. For each topic we choose several tools to help us demonstrate the principles. The selection of a particular tool is always difficult because there are often tens (or even hundreds) of similar projects. We try to choose software that is relevant, widely used and sane. Do not blame us if your favourite tool is not there – we simply cannot squeeze in more examples :-).

There is also another contribution of this course: you will practice reading documentation and finding information for yourself. Built-in documentation (and for no extra cost) has a distinguished history in unix-like operating systems and Linux is no exception.