Unix-like systems and shell [ KMI/UNIX ]

The course introduces students with unix-like operating systems, their principles and specifics, shell programming and text processing.

In the first part, unix-like operating systems are introduced, with their user environments and systems of help, files and processes. Main contents of the second part are then basics of shell programming (so-called scripting, primarily Bash shell) and its utilization in advanced text processing using essential software utilities bundled with unix-like operating systems. During the course, specifics of Linux, GNU and Apple Mac OS X systems are also mentioned. Everything is intensively experienced in practices, with strong hands-on approach, in the mentioned operating systems and Bash shell.

Prerequisities: Basic knowledge and skills with operating systems on user level and programming in any language.

Lectures

  1. Introduction of unix-like operating systems: Operating system, Unix, GNU, Linux, distribution.
  2. User environments, help: Graphical (desktop), textual (terminal), command line and interpreter (shell), manual pages and shell help.
  3. Basic principles, systems of files and processes: Files and directories, commands and programs for working with them, (traditional unix) access rights, processes and their manipulation.
  4. Introduction to shell, jobs and a pipe: Job control, file and directory names expansion, program input and output, pipe.
  5. Text processing: basic utilities and grep: (Plain) text, cat, head, tail, wc, sort, cut, paste, diff, …, regular expressions and grep.
  6. Shell (Bash) programming: Commands, variables (parameters), conditionals, loops, integer arithmetic, command grouping, functions, script.
  7. Shell (Bash) programming: Shell invocation, quoting, special variables, arrays, expansion ({}, of variables and paramters, words, path), command substition, further commands.
  8. Text processing: stream editor sed: Editation process, edit command, function, using shell variables.
  9. Text processing: programming language awk: Line field, pattern and action, variables, arrays, operators, conditionals, loops, functions.
  10. Localization (Czech): Localization and localization shell variables, text coding and end of lines.
  11. Specifics against Unix (POSIX standard): Linux, GNU and Apple Mac OS X specifics (desktop and terminal, command line, help, file system, system of processes, grep, Bash, sed, awk).

Literature