Course: Programming in unix shell

» List of faculties » PRF » KMI
Course title Programming in unix shell
Course code KMI/SHELL
Organizational form of instruction Seminar
Level of course Bachelor
Year of study not specified
Semester Summer
Number of ECTS credits 3
Language of instruction Czech
Status of course Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Outrata Jan, doc. Mgr. Ph.D.
Course content
The course freely follows the Unix-like systems course. In the first part, basics of unix shell, files, processes and text processing on unix-like operating systems are briefly reviewed. The main contents of the course, however, is then shell programming (so-called scripting, primarily Bash shell) and its utilization in stream text processing using essential software utilities bundled with unix-like operating systems, mainly the grep, sed and awk tools. In the end, national specifics (localization) and specifics of Linux, GNU and Apple Mac OS X systems are also mentioned. Everything is intensively experienced in seminars, with strong hands-on approach, in linux operating system and Bash shell. 1. Basic principles of unix-like operating systems, introduction to shell: Command line and interpreter (shell), manual pages and shell help, files and directories, (traditional unix) access rights, processes and their manipulation. Job control in shell, file and directory names expansion, aliases, program input and output, pipe. 2. Basics of text processing: Text editing: editors Vi and Emacs, basic utilities, regular expressions and grep, basics of sed and awk. 3. Shell (Bash) programming: Commands, variables (parameters), conditionals, loops, integer arithmetic, command grouping, functions, script. 4. Shell (Bash) programming: Shell invocation, quoting, special variables, arrays, expansion ({}, of variables and paramters, words, path), command substition, further commands. 5. Text processing: stream editor sed: Editation process, edit command, function, using shell variables. 6. Text processing: programming language awk: Line field, pattern and action, variables, arrays, operators, conditionals, loops, functions. 7. Localization (Czech): Localization and localization shell variables, text coding and end of lines. 8. 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, localization).

Learning activities and teaching methods
Lecture, Demonstration, Laboratory Work
Learning outcomes
The course deals with shell programming in unix-like operating systems (scripting) and text processing using essential software utilities bundled with those systems with use of the shell.
Solve tasks of text processing using shell in unix-like operating systems.
Prerequisites
Working skills with unix-like operating systems and programming in any language.
KMI/UNIXS

Assessment methods and criteria
Student performance

Credit. Activity at practices and completing given tasks.
Recommended literature
  • Albing C., Vossen JP. (2017). bash Cookbook: Solutions and Examples for Bash Users (2nd edition). O'Reilly Media.
  • Blum, R., Bresnahan, C. (2015). Linux Command Line and Shell Scripting Bible, 3rd Edition. Wiley.
  • Čada O. Mac OS X Shell krok za krokem.. Grafika Publishing s.r.o.
  • Forst L. (2010). Shell v příkladech aneb aby váš unix skvěle shell. Matfyzpress.
  • Herold H. (2004). awk & sed: Příručka pro dávkové zpracování textu.. Computer Press.
  • kolektiv. (2008). Linux: Dokumentační projekt, 4. aktualizované vydání.. Computer Press.
  • Michael R. K. (2008). Mastering Unix Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus. Wiley.
  • Newham C. (2005). Learning the bash Shell: Unix Shell Programming (In a Nutshell). O'Reilly Media.
  • Ray D. S., Ray Eric J. (2009). Unix: podrobný průvodce. Grada.
  • Robbins A. (2005). Unix in a Nutshell, Fourth Edition. O'Reilly Media.
  • Sobell, M. G., Helmke, M. (2017). A Practical Guide to Linux Commands, Editors, and Shell Programming (4th Edition). Addison-Wesley.
  • Sobell M. G. (2007). Mistrovství v Linuxu: Příkazový řádek, shell, programování. Computer Press.
  • Vychodil, V. (2003). Linux - Příručka českého uživatele systému. Computer Press.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Science Study plan (Version): Computer Science (2020) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in Programming and Software Development (2021) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Information Technologies (2022) Category: Informatics courses 1 Recommended year of study:1, Recommended semester: Summer
Faculty: Faculty of Science Study plan (Version): Computer Science - Specialization in General Computer Science (2021) Category: Informatics courses 2 Recommended year of study:2, Recommended semester: Summer