Course Outline
Introduction
- Learning Objectives
- Course Schedule
- Introduction to Participants
- Prerequisites
- Bibliography
- Participant Responsibilities
- Course Overview
Review of Basics - optional
- Files
- Directories and Processes
- Displaying Directories - ls
- Accessing Help - man
- Displaying Files - cat, more
- Basic Commands
- Piping - using | symbol
- Output Redirection - using > symbol
- Appended Output Redirection - using >> symbol
- Input Redirection - using < symbol
- Error Redirection
- Using /dev/null
- Foreground Processes
- Background Processes - &
- Terminating Processes - kill
- Special Directory Notations - . and ..
- The Command Prompt - PS1
- Creating Shortcuts (Aliases)
- Using Shortcuts (Aliases)
- Command History
- Command Line Editing - using Arrow Keys
- Command Line Editing - using vi
- Shell Customization
- The Home Directory - HOME
- The Current Working Directory - pwd
- Changing Directories - cd
- Create Directory - mkdir
- Remove Directory - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Delete - rm -i
- Recursive Delete - rm -r
- Wildcards - File Name Generation
- Word Count - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Testing Commands
- Creating the Script File
- Granting Execute Permissions
- Testing the Script
- Executing the Script - time
- Executing the Script - dot
- Executing the Script - exec
- Executing the Script - ksh
- Debugging the Script
- Passing Parameters
- The read Command
- Using read in Scripts
- Selecting the Shell
- Formatting Output
- Suppressing Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Quoted Strings - `
- Using $(...)
- System Variables - set
- Other Special Variables
- User-Defined Variables
- User-Defined Variables - unset
- Variables within Scripts
- Typeset Command
- Integer Variables
- Special Syntax Constructs
Creating Menus
- Conditions - case
- Building a Menu Interface
- Loops - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting the Loop
- Hidden Option - forking a shell
- Handling Interrupts - trap
- Advanced Interrupt Handling
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu Implementation
Selection
- Conditional Checks
- Checking File Attributes
- Checking File Permissions
- Nested Tests - Nested ifs
- Alternative Tests - elseif
- Negation - NOT Condition
- Compound Conditions in One Test
- String Comparison
- Using Square Brackets
- Preventing Null Input
- Numeric Comparison
- Advanced case Usage
- Displaying Variable Values
- Space Management
- Testing Command Execution
Iteration, Looping
- Arithmetic Operations - let
- Loops - while, until
- Infinite Loop Concepts
- Loops - for
- Handling More than 9 Parameters - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-processes
- Export Command
- Exit Status Codes
- Aliases
- Functions
- Useful Utility Functions
- Return Status
- Modifying Function Behavior
- Functions within Scripts
Advanced Commands
- Debugging - set
- Shell Settings - set
- Merging Files - join
- Merging Files - paste, basename and dirname
- Job Control - jobs
- Regular Expressions
- Global Regular Expression Printer - grep
- Extended Regular Expressions - egrep
- Fixed-String Matching - fgrep
- Arithmetic Evaluation - expr
- Arithmetic Evaluation – bc, eval Command,
- Argument Parsing
- getopts Command
- Using Arrays
Advanced Edit – vi & sed
- vi - Key Combination Mapping
- Mapping Control Keys
- Using Abbreviations
- Batch Editing Multiple Files
- Regular Expressions
- Global Insertions
- Here document,
- Batch Stream Editor - sed, sed delete, -d, sed print, -p, sed suppress, -n, sed quit, -q, sed file, -f, sed Multiple Input, sed
- Search and Replace
- sed Demonstration
Text File Processing - awk
- The awk Programming Tool
- Pattern Matching
- Regular Expressions
- Comparison Patterns
- Compound Patterns
- Range Patterns
- Special Patterns
- Built-in Functions
- Troubleshooting awk Scripts
- Passing Parameters
- Using Contains
- printf Function
- Arithmetic Computations
- User-Defined Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
Participants should possess a solid working knowledge of UNIX or have previously completed an Introduction to UNIX course to ensure they can fully benefit from this training.
Testimonials (4)
I liked the training because it was interactive, the trainer was knowledgeable, and the exercises helped me learn. The hourly breaks also kept me refreshed and focused.
Musat Robert
Course - UNIX/Linux Shell Scripting
I like the manner of presenting the theory and giving practical examples. Very well structured. I also like the fact that the trainer is always on time and has good communication skills.
Louise
Course - UNIX/Linux Shell Scripting
the constant feedback. possibility to ask questions and get the answers, get some working scripts which we were working on, modifying them and improving them at some point.
Nikita - DB Global Technology SRL
Course - UNIX/Linux Shell Scripting
Wojciech and NobleProg focused the itinerary to feet my needs.