Course Outline
Introduction
- Learning Objectives
- Course Schedule
- Introductions
- Prerequisites
- Bibliography
- Delegate Responsibilities
- Course Overview
Basics Review - optional
- Files
- Directories and Processes
- Listing Directories - ls
- Accessing Help - man
- Viewing Files - cat, more
- Basic Commands
- Piping - using | symbol
- Output Redirection - using > symbol
- Appending Output - using >> symbol
- Input Redirection - using < symbol
- Error Redirection
- Discarding Output - /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special File References - . and ..
- Customizing the Command Prompt - PS1
- Creating Aliases
- Using Aliases
- Command History
- Command Line Editing - Arrow Keys
- Command Line Editing - vi
- Shell Customization
- Home Directory - HOME
- Current Working Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Deleting Directories - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Delete - rm -i
- Recursive Deletion - rm -r
- Wildcards - File Name Generation
- Counting Words - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Verifying Commands
- Creating Script Files
- Setting Execution Permissions
- Testing Scripts
- Executing Scripts - time
- Executing Scripts - dot
- Executing Scripts - exec
- Executing Scripts - ksh
- Debugging Scripts
- Handling 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
- Unsetting Variables
- Variables in Scripts
- The typeset Command
- Integer Variables
- Special Syntax Structures
Creating Menus
- Conditional Logic - case
- Building a Menu
- Looping - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting Loops
- Hidden Features - forking a shell
- Handling Interrupts - trap
- Advanced Interrupt Handling
- Text Formatting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu Implementation
Selection
- Conditional Testing
- Testing File Attributes
- Testing File Permissions
- Complex Tests - Nested ifs
- Complex Tests - elseif
- Negation - The NOT Condition
- Combined Conditions in One Test
- String Testing
- Using Square Brackets
- Preventing Null Input
- Numeric Testing
- Advanced case Statements
- Displaying Variables
- Managing Spacing
- Command Testing
Iteration, Looping
- Arithmetic Operations - let
- Looping - while, until
- Infinite Loops
- Looping - for
- Handling More than 9 Parameters - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-shells
- The export Command
- Exit Status Codes
- Aliases
- Functions
- Common Functions
- Return Status
- Modifying Function Behavior
- Functions in Scripts
Advanced Commands
- Debugging - set
- Configuration - set
- Combining Files - join
- Combining Files - paste, basename and dirname
- Job Management - jobs
- Regular Expressions
- Pattern Matching Search - grep
- Extended Regular Expressions - egrep
- Fixed String Search - fgrep
- Arithmetic Expressions - expr
- Calculations – bc, eval Command,
- Argument Processing
- The getopts Command
- Using Arrays
Advanced Edit – vi & sed
- vi - Mapping Key Combinations
- Mapping Control Keys
- Using Abbreviations
- Batch File Editing
- Regular Expressions
- Global Insertion
- 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
- Find and Replace
- 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 Calculations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is best suited 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.