Course Overview
• Course Title: UNIX Shell Scripting
• Duration: 15 Weeks (60 Contact Hours)
• Format: 4 Hours per week (Integrated Lecture, Lab and Student Presentations)
• Prerequisites: Introduction to Operating Systems or basic familiarity with
Linux/UNIX environments. Students should understand file structures
(directories/paths) and basic command execution.
1. Course Rationale
In modern DevOps, Data Science, and Systems Administration, the ability to automate
repetitive tasks is a foundational skill. Shell scripting allows for the orchestration of
software, management of server environments, and efficient data processing without the
overhead of heavy programming languages.
2. Course Description
This course provides a comprehensive dive into the UNIX shells (Bourne Again Shell
(bash)). Students will move from executing simple shell commands to relatively to
combining modular tools to solve large problems.
3. Competence Domains
Upon successful completion, students will demonstrate mastery in:
1. UNIX filesystem and permission structures.
2. Writing readable, documenting, and executing shell scripts.
3. Utilizing grep, sed, and awk for advanced text manipulation.
4. Automate tasks and manage system resources using scripts.
5. Writing scripts that handle user input and system errors gracefully.
4. Mode of Delivery
The course uses a "theory-to-practice" model to ground both knowledge and practise.
This will comprise: Class Lectures, Practical Labs and Student Presentations.
5. Assessment Method
Component Weight Description
Weekly in-class coding challenges and terminal
Practical Labs 20%
exercises.
Student Presentations 20% Student take home assignments
Take-home Assignments 20% Scipting projects.
Assessment of logic, command syntax, and "paper-
Final Written Exam 40%
coding" and theoretical abilities.
6. Week Course Map
Week Topic Key Focus
Shell types, man pages, and the command line
1 The Shell Environment
interface.
Navigating trees, chmod, chown, and hidden
2 File System & Permissions
attributes.
3 I/O Redirection & Pipes Standard In/Out/Error, `
Environment vs. Local variables, single vs. double
4 Variables & Quoting
quotes.
5 Control Flow: Conditionals if, then, else, elif, and the test command.
6 Control Flow: Loops for, while, and until loops for iterative tasks.
7 Functions & Modularity Creating reusable code blocks and scoping variables.
Peer review of script logic and debugging
8 Mid-Term Project Prep
techniques.
9 Regular Expressions (Regex) Pattern matching syntax for text searching.
10 The Stream Editor (sed) Non-interactive text editing and transformations.
11 The awk Programming Data extraction, reporting, and field processing.
Week Topic Key Focus
Lang
top, ps, kill, and background/foreground jobs (&,
12 Process Management
fg).
13 Scheduling & Cron Automating scripts with crontab and at.
Handling user input safely and preventing
14 Script Security
"injection."
Comprehensive assessment of all competence
15 Final Review & Exams
domains.
7. List of References
1. Shotts, W. (2019). The Linux Command Line: A Complete Introduction. No Starch
Press.
2. Newham, C. (2005). Learning the bash Shell. O'Reilly Media.
3. Robbins, A. (2018). Classic Shell Scripting. O'Reilly Media.
4. GNU Project. Bash Reference Manual (Online Documentation).