Unix/Linux Shell Scripting Course Content
Goal: Navigate the filesystem and master essential commands.
- Architecture: Understanding the Kernel, Shell, and File System Hierarchy (FHS)
- Navigation: Mastering cd, ls, pwd, and pushd/popd
- File Operations: touch, cp, mv, rm, mkdir, and chmod/chown (Permissions)
- The Manual: Using man and info to learn on the fly
- I/O Redirection: Mastering Standard Input (stdin), Output (stdout), and Error (stderr) using >, >>, and 2>
Goal: Manipulate data without ever opening a text editor.
- Filters: Using grep (search), sort, uniq, head, tail, and wc
- The Pipeline (|): Combining small tools to solve complex problems
- Stream Editing with sed: Non-interactive text transformation and search-and-replace
- Data Extraction with awk: Using awk for column-based data processing and reporting
- Find & Locate: Using find with -exec to perform bulk actions on files
Goal: Automate repetitive tasks with robust scripts.
- Script Anatomy: The Shebang (#!/bin/bash), execution bits, and sourcing
- Variables: Environment variables vs. Local variables and Command Substitution $(...)
- Positional Parameters: Handling script arguments ($1, $2, $@, $#)
- Flow Control:
- Conditionals: if, then, else, and case statements
- Test Operators: String, Integer, and File-based tests (e.g., [ -f $file ])
- Loops: for, while, and until
- Functions: Defining reusable code blocks and managing scope
Goal: Handling enterprise-level automation and system health.
- Process Management: top, ps, kill, bg, fg, and jobs
- Scheduling: Automating scripts with cron (crontab) and at
- Networking Tools: curl, wget, ssh (passwordless login), scp, and netstat
- Error Handling: Using set -e, set -u, and exit codes to make scripts "fail-safe"
- Signals & Traps: Using trap to clean up temporary files on script interrupt