Detailed Course Outline
Course Introduction
- Administration and Course Materials
 - Course Structure and Agenda
 - Delegate and Trainer Introductions
 
Session 1: INTRODUCTION TO THE LINUX OPERATING SYSTEM
- A brief history of Linux and UNIX
 - The Linux kernel
 - The Linux file system
 - A login session
 - Getting started navigating the file system
 - The file system structure
 - Directories and files
 - Pathnames
 - Navigating the file system
 - Exercise: Logging on to the system
 - Exercise: Navigating the file system
 
Session 2: BASIC COMMANDS
- Command line syntax
 - Basic file handling commands
 - Basic Directory handling commands
 - Filename wildcard characters
 - Exercise: Manipulating files and directories
 
Session 3: REDIRECTION AND PIPES
- Input redirection
 - Output redirection
 - Pipes
 - Exercise: Using redirection and pipe facilities
 
Session 4: INTRODUCTION TO THE vi EDITOR
- Overview of the vi editor
 - Basic functions
 - Switching to input mode
 - Other useful commands
 - Exercises: Using the vi editor
 - Exercise: Using more advanced vi features
 
Session 5: SEARCHING AND REPLACING TEXT
- Searching and replacing text using the vi editor
 - Using regular expressions (regex)
 - Using sed for search and replace
 - Searching for text with grep, egrep and fgrep
 - Exercises: Searching and Replacing Text
 
Session 6: RECALLING AND EDITING COMMANDS
- Overview
 - The bash shell
 - The korn shell
 - Exercises: Recall and Edit Commands
 
Session 7: FILE PERMISSIONS AND ACCESS CONTROL
- Users and user groups
 - File access permissions
 - Changing file attributes
 - Switching users and user groups
 - Linking files
 - Exercise: Setting and access permissions
 
Session 8: FILTERING TEXT
- Overview
 - The cut command
 - An introduction to awk
 - The nl command
 - Exercises: Filtering Text
 
Session 9: PROCESSES
- What is a process?
 - Monitoring processes
 - Killing processes
 - Background processes
 - Job Control
 - Grouping commands
 - Exercise: Monitoring and controlling processes
 
Session 10: THE USER ENVIRONMENT
- Customising the .profile or .bash_profile
 - Customising the .kshrc or .bashrc
 - Exercise: Setting up an environment
 
Session 11: MORE BASIC COMMANDS
- The find command
 - Using xargs command
 - The locate command
 - The df command
 - The cut command
 - The sort command
 - Finding duplicate content
 - The pinky command
 - Exercise: More Basic Commands
 
Session 12: UNIX COMMAND REVIEW
- Basic Unix commands
 - General commands
 - File and directory handling commands
 - Filename generation characters and regular expressions (regex)
 - I/O Redirection features
 - Other commands
 
Session 13: GETTING STARTED
- What is a shell script?
 - Development guidelines
 - Creating and editing shell scripts
 - Naming and storing shell scripts
 - Executing shell scripts
 - Exercise: Write a simple shell script
 
Session 14: USING VARIABLES
- Environment variables
 - Local variables
 - Assigning values to variables
 - Assessing variable values
 - Using quotes
 - Delimiting variable names
 - Echo control sequences
 - Exercise: Add variables to a script
 
Session 15: INTEGER ARITHMETIC
- Using the expr command
 - Using the (( )) notation
 - Exercise: Add integer arithmetic to a shell script
 
Session 16: HANDLING RUN TIME DATA
- The read command
 - Command line arguments
 - Exercise: Writing a generic shell script
 - Exercise: Writing an interactive shell script
 
Session 17: CONDITIONAL EXECUTION
- The if statement
 - The test command
 - Exercise: Adding validation to previous scripts
 
Session 18: ADDITIONAL KORN, BASH & POSIX SYNTAX
- Other test notations
 - Default and substitute variables
 - Exit status codes
 - Exercise
 
Session 19: LOOP CONSTRUCTS
- The while loop
 - The until loop
 - The for loop
 - The while true and until false loops
 - Loop control commands
 - Exercise: Enhancing the previously written scripts
 - Exercise: Writing a script to copy files using a 'for' loop
 - Exercise: Writing a script to generate numbers with the 'while' loop
 
Session 20: MULTI-BRANCH DECISIONS
- The case statement
 - Menu driven applications
 - Exercise: Developing and writing a menu system
 
Session 21: FUNCTIONS
- What is a function?
 - Syntax
 - Examples
 - Exercise: Add a function to a script
 
Session 22: INTERRUPT HANDLING
- Interrupt signals
 - Trapping interrupts
 - Exercise: Adding traps to the menu script
 
Session 23: ADDITIONAL FEATURES AND FACILITIES
- The exec commands
 - The includes notation
 - More about loops
 - Arrays
 - Here Documents
 - Exercise: Create a here script