Course Outline Introduction

  Objectives
  Course Schedule
  Course Introductions
  Pre-requisites
  Bibliography
  Delegate Responsibilities
  Course Summary

Review of Basics - optional

  Files
  Directories and Processes
  Displaying Directories - ls
  Getting Help - man
  Displaying Files - cat, more
  Simple Commands
  Piping - using | symbol
  Redirection - using > symbol
  Redirection - using >> symbol
  Redirecting Input - using < symbol
  Redirecting Errors
  Using /dev/null
  Foreground Jobs
  Background Jobs - &
  Stopping Jobs - kill
  Special Files - . and ..
  The Command Prompt - PS1
  Creating Aliases
  Using Aliases
  Command history
  Command Line Edit - using Arrow Keys
  Command Line Edit - using vi
  Customising the Shell
  The Home Directory - HOME
  The Working Directory - pwd
  Changing Directories - cd
  Make Directory - mkdir
  Remove Directory - rmdir
  Interactive Copy - cp -i
  Interactive Move - mv -i
  Interactive Remove - rm -i
  Removing Directories - rm -r
  Wild Cards - File Name Generation
  Word count - wc
  Finding Files - find
  Finding Text in Files - grep, sort, cut, uniq, tr
  Changing Permissions - chmod

Shell Programming

  Creating Shell Scripts
  Testing the Command
  Creating the Script File
  Adding Execute Permissions
  Testing the Script
  Running the Script - time
  Running the Script - dot
  Running the Script - exec
  Running the Script - ksh
  Debugging the Script
  Passing Parameters
  The read Command
  Using read in Scripts
  Choosing the Shell
  Tidying The Output
  Suppressing Input - stty

Special Characters and Variables

  Quotation Marks
  Quoted Strings - ", '
  Escape Character - *
  Quoted Strings - `
  Using $(...)
  System Variables - set
  Other Special Variables
  User Variables
  User Variables - unset
  Variables in Scripts
  Typeset Command
  Integer Variables
  Special Constructs

Creating Menus

  Conditions - case
  Creating a Menu
  Iteration - while, until
  Holding the Output - sleep
  Holding the Output - dummy read
  Ending the Script
  Ending the Loop
  Hidden Option - forking a shell
  Trapping Interrupts - trap
  More on Interrupts
  Highlighting Text- tput
  Positioning the Cursor - backtab \b
  Korn Shell Menu

Selection

  Conditional Testing
  Testing File Attributes
  Testing File Permissions
  Multiple Tests - Nested ifs
  Multiple Tests - elseif
  The NOT Condition
  Multiple Conditions in One Test
  Testing Strings
  Using Square Brackets
  Avoiding Null Input
  Testing Numbers
  More on case
  Displaying Variables
  Placing Spaces
  Testing Commands

Iteration, Looping

  Computations - let
  Iteration - while, until
  Infinite Loop
  Iteration - for
  More than 9 Parameters - shift

Sub-scripts and Functions

  Local and Global Variables
  Sub-scripts
  Export Command
  Exit Status
  Aliases
  Functions
  Useful Functions
  Return Status
  Manipulating Functions
  Functions in Scripts

Advanced Commands

  Debugging - set
  Setting - set
  Merging Files - join
  Merging Files - paste, basename and dirname
  Job Control - jobs
  Regular Expressions
  Global Regular Expression Printer - grep
  Expression grep - egrep
  Fast grep - fgrep
  Computations - expr
  Computations – bc, eval Command,
  Argument Processing
  getopts Command
  Using Arrays

Advanced Edit – vi & sed

  vi - Mapping Key Combinations
  Mapping Control Keys
  Using Abbreviations
  Editing Many Files
  Regular Expressions
  Global Insert
  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
  Computations
  Functions
  substr
  length
  Action Statements
  Control Flow Statements
  Arrays
  Arrays with for Loops
  awk Examples