Course Outline
Introduction
- Course Objectives
- Schedule Overview
- Introductions
- Prerequisites Review
- Recommended Reading
- Participant Responsibilities
- Course Summary
Review of Basics - optional
- Managing Files
- Directories and Processes
- Listing Directory Contents - ls
- Accessing Help - man
- Viewing File Contents - cat, more
- Basic Commands
- Piping Output - using | symbol
- Output Redirection - using > symbol
- Append Redirection - using >> symbol
- Input Redirection - using < symbol
- Error Redirection
- Using /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special Directories - . and ..
- Command Prompt Customization - PS1
- Creating Aliases
- Utilizing Aliases
- Command History
- Command Line Editing - using Arrow Keys
- Command Line Editing - using vi
- Shell Configuration
- The Home Directory - HOME
- The Working Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Removing Empty Directories - rmdir
- Interactive Copying - cp -i
- Interactive Moving - mv -i
- Interactive Deletion - rm -i
- Recursive Deletion - rm -r
- Wildcards - Filename Generation
- Word Counting - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Command Validation
- Creating Script Files
- Granting Execute Permissions
- Script Testing
- Executing Scripts - time
- Executing Scripts - dot
- Executing Scripts - exec
- Executing Scripts - ksh
- Script Debugging
- Passing Parameters
- The read Command
- Incorporating read in Scripts
- Shell Selection
- Output Formatting
- Input Suppression - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Command Substitution - `
- Using $(...)
- System Variables - set
- Special Variables
- User-Defined Variables
- Unsetting Variables - unset
- Variable Scope in Scripts
- Typeset Command
- Integer Variables
- Special Syntax Structures
Creating Menus
- Conditional Logic - case
- Menu Construction
- Loops - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating Scripts
- Exiting Loops
- Advanced Options - forking a shell
- Handling Interrupts - trap
- Interrupt Management
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menus
Selection
- Conditional Testing
- File Attribute Checks
- File Permission Checks
- Complex Conditions - Nested ifs
- Complex Conditions - elseif
- Negation Conditions
- Compound Conditions
- String Testing
- Using Square Brackets
- Preventing Null Input
- Numeric Testing
- Advanced case Usage
- Variable Display
- Spacing Considerations
- Command Validation
Iteration, Looping
- Arithmetic Operations - let
- Loops - while, until
- Infinite Loops
- Loops - for
- Handling Multiple Parameters - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-scripts
- Export Command
- Exit Status
- Aliases
- Functions
- Common Utility Functions
- Return Status
- Function Manipulation
- Functions in Scripts
Advanced Commands
- Debugging - set
- Shell Options - set
- File Merging - join
- File Merging - paste, basename and dirname
- Job Control - jobs
- Regular Expressions
- Pattern Searching - grep
- Extended Regex - egrep
- Fixed-String Search - fgrep
- Calculations - expr
- Calculations – bc, eval Command,
- Argument Parsing
- getopts Command
- Array Usage
Advanced Edit – vi & sed
- vi - Key Mapping
- Control Key Mapping
- Using Abbreviations
- Batch 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
- 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
- Parameter Passing
- Using Contains
- printf Function
- Arithmetic Operations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is intended for individuals who possess a solid working knowledge of UNIX systems or have previously completed an 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.