Course Outline
Introduction
- Learning Objectives
- Course Schedule
- Welcome and Introductions
- Prerequisites
- Recommended Reading
- Delegate Responsibilities
- Course Summary
Review of Basics - Optional
- Understanding Files
- Directories and Processes
- Listing Directories - ls
- Accessing Help - man
- Viewing Files - cat, more
- Basic Commands
- Piping - using the | symbol
- Output Redirection - using the > symbol
- Output Redirection - using the >> symbol
- Input Redirection - using the < symbol
- Handling Error Redirection
- Utilizing /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special Files - . and ..
- The Command Prompt - PS1
- Defining Aliases
- Employing Aliases
- Command History
- Line Editing - using Arrow Keys
- Line Editing - using vi
- Customizing the Shell
- The Home Directory - HOME
- The Current Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Removing Directories - rmdir
- Interactive Copying - cp -i
- Interactive Moving - mv -i
- Interactive Deletion - rm -i
- Removing Directories Recursively - rm -r
- Wild Cards - Filename Generation
- Word Count - wc
- Locating Files - find
- Searching for Text - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Authoring Shell Scripts
- Verifying Commands
- Constructing the Script File
- Applying Execute Permissions
- Validating the Script
- Executing the Script - time
- Executing the Script - dot
- Executing the Script - exec
- Executing the Script - ksh
- Script Debugging
- Passing Parameters
- The read Command
- Implementing read in Scripts
- Selecting the Shell
- Formatting Output
- Hiding Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Quoted Strings - `
- Using $(...)
- System Variables - set
- Other Special Variables
- User-Defined Variables
- Unsetting User Variables - unset
- Variables within Scripts
- The typeset Command
- Integer Variables
- Special Constructs
Creating Menus
- Conditional Logic - case
- Building a Menu Interface
- Iteration - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting a Loop
- Hidden Option - Forking a Shell
- Handling Interrupts - trap
- Further Details on Interrupts
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu Examples
Selection
- Conditional Testing
- Checking File Attributes
- Verifying File Permissions
- Nested Conditionals
- Using elseif
- Logical NOT Condition
- Multiple Conditions in a Single Test
- String Comparison
- Utilizing Square Brackets
- Preventing Null Input
- Number Comparison
- Advanced case Usage
- Displaying Variable Values
- Managing Spaces
- Testing Command Execution
Iteration and Looping
- Arithmetic Operations - let
- Iteration - while, until
- Infinite Loops
- Iteration - for
- Handling More Than 9 Parameters - shift
Sub-scripts and Functions
- Local and Global Variables
- Sub-scripts
- The export Command
- Exit Status
- Aliases
- Functions
- Practical Functions
- Return Status
- Manipulating Functions
- Incorporating Functions in Scripts
Advanced Commands
- Debugging - set
- Configuration - set
- Merging Files - join
- Merging Files - paste, basename, and dirname
- Job Control - jobs
- Regular Expressions
- Global Regular Expression Printer - grep
- Extended grep - egrep
- Fast grep - fgrep
- Arithmetic Computations - expr
- Calculations – bc, eval Command
- Argument Processing
- getopts Command
- Utilizing Arrays
Advanced Editing – vi & sed
- vi - Mapping Key Combinations
- Mapping Control Keys
- Using Abbreviations
- Editing Multiple Files
- Regular Expressions
- Global Insert
- Here Documents
- Stream Editor - sed: delete (-d), print (-p), suppress (-n), quit (-q), file (-f), and Multiple Input
- Find and Replace Operations
- sed Example
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
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is intended exclusively for individuals who possess a solid working knowledge of UNIX or have previously completed the Introduction to UNIX course.
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.