Linux Bash Shell Programming (LBSP) – Outline

Detailed Course Outline

Day 1

Course Introduction

  • Administration and Course Materials
  • Course Structure and Agenda
  • Delegate and Trainer Introductions

Session 1: UNIX COMMAND REVIEW

  • Basic Unix commands
  • General commands
  • File and directory handling commands
  • Filename generation characters
  • I/O Redirection features
  • Other commands

Session 2: 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 3: 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 4: INTEGER ARITHMETIC

  • Using the expr command
  • Using the (( )) notation
  • Exercises: Add integer arithmetic to a shell script

Session 5: HANDLING RUN TIME DATA

  • The read command
  • Command line arguments
  • Exercise: Writing a generic shell script
  • Exercise: Writing an interactive shell script

Session 6: CONDITIONAL EXECUTION

  • The if statement
  • The test command
  • Exercise: Adding validation to previous scripts

Session 7: ADDITIONAL KORN, BASH & POSIX SYNTAX

  • Other test notations
  • Default and substitute variables
  • Exit status codes
  • Exercise

Day 2

Session 8: 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 9: MULTI-BRANCH DECISIONS

  • The case statement
  • Menu driven applications
  • Exercise: Developing and writing a menu system

Session 10: FUNCTIONS

  • What is a function?
  • Syntax
  • Examples
  • Creating a Function Library
  • Exercise: Add a function to a script

Session 11: INTERRUPT HANDLING

  • Interrupt signals
  • Trapping interrupts
  • Exercise: Adding traps to the menu script

Session 12: ADDITIONAL FEATURES AND FACILITIES

  • The exec commands
  • The includes notation
  • More about loops
  • Arrays
  • Here Documents
  • Exercise: Create a here script

Day 3

Session 13: BACKUP AND RESTORE UTILITIES

  • Backing-up and restoring files
  • Basic and advanced use of tar
  • Compression utilities gzip, bzip2, zip and compress
  • Exercise: Backing up and restoring files using tar
  • Exercises: Compressing files

Session 14: BACKGROUND JOB SCHEDULING

  • Scheduling jobs with the cron command
  • Scheduling jobs with the at command
  • Exercises: Running background jobs

Session 15: COMMANDS FOR COMPARING FILES

  • Compare two files with the cmp command
  • Compare two files with the comm command
  • Compare two files with the diff and sdiff commands
  • Compare large files with the bdiff command
  • Exercises: Identifying file differences

Session 16: SPLITTING FILES

  • The split and csplit commands
  • Exercises: Splitting files

Day 4

Session 17: IDENTIFYING AND TRANSLATING CHARACTERS

  • od - octal dump
  • Use cat to display non-printing characters
  • The expand and unexpand commands to convert between tab and space characters
  • The tr command for character translation
  • Exercises: Translating characters with tr

Session 18: REGULAR EXPRESSION NOTATION REVIEW

  • Standard regular expressions
  • Extended regular expressions

Session 19: THE STREAM EDITOR sed

  • sed command line syntax
  • sed script files
  • sed command processing
  • sed addresses and simple instructions
  • sed pattern space and hold space
  • Grouping sed commands
  • Hold and get functions
  • Advanced flow control
  • Exercises: Text processing with sed

Session 20: FUNDAMENTALS OF AWK

  • Basic AWK usage
  • AWK program-files
  • AWK scripts
  • AWK variables
  • Pattern matching with AWK
  • AWK extended patterns
  • AWK operators
  • AWK arithmetic operations
  • AWK output
  • Formatting output with printf
  • Exercises: Create awk scripts to extract selected data from a file and generate reports

Day 5

Session 21: AWK PROGRAM CONTROL STRUCTURES

  • The BEGIN and END functions
  • The AWK if construct
  • The AWK else if construct
  • The AWK while construct
  • Other program control statements
  • The AWK break, continue and exit statements
  • User defined functions
  • Exercises: Create AWK scripts and program-files utilising program control structures

Session 22: AWK FUNCTIONS

  • AWK string functions
  • AWK length, tolower, toupper, index, sub, gsub, match, substr, split, sprintf, system and getline functions
  • Exercises: Generate AWK scripts and program-files to extract and format data using AWK functions

Session 23: AWK ARRAYS

  • AWK associative arrays
  • Multi-dimensional arrays
  • Exercises: Create AWK associative arrays to process text files and generate reports

Session 24: MISCELLANEOUS TOOLS

  • bc (calculator)
  • fuser (testing for files in use)
  • getops (checking options passed to shell scripts)
  • printf (formatting screen output)
  • logger (script logging)
  • xargs (generating arguments for a command)
  • eval (re-evaluating variables)
  • Exercises: Using tools within a shell script