Course Outline
Introduction
- Learning Objectives
- Course Timetable
- Participant Introductions
- Prerequisites
- Recommended Reading
- Participant Responsibilities
- Course Overview
Review of Basics - optional
- Files
- Directories and Processes
- Listing Directory Contents - ls
- Accessing Manual Pages - man
- Displaying File Contents - cat, more
- Basic Commands
- Pipes - using the | symbol
- Output Redirection - using the > symbol
- Appending Output - using the >> symbol
- Input Redirection - using the < symbol
- Redirecting Error Output
- Discarding Output with /dev/null
- Foreground Tasks
- Background Tasks - &
- Terminating Tasks - kill
- Special Directories - . and ..
- Prompt Customization - PS1
- Defining Aliases
- Utilizing Aliases
- Command History
- Command Line Editing - using Arrow Keys
- Command Line Editing - using vi
- Shell Configuration
- Home Directory - HOME
- Current Working Directory - pwd
- Changing Directories - cd
- Creating Directories - mkdir
- Deleting Directories - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Delete - rm -i
- Recursive Directory Removal - rm -r
- Wildcards - File Name Expansion
- Counting Words - wc
- Locating Files - find
- Searching File Text - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Verifying Commands
- Creating Script Files
- Granting Execute Permissions
- Testing Scripts
- Executing Scripts - time
- Executing Scripts - dot
- Executing Scripts - exec
- Executing Scripts - ksh
- Troubleshooting Scripts
- Handling Parameters
- The read Command
- Implementing read in Scripts
- Selecting a Shell
- Formatting Output
- Disabling Input Echo - stty
Special Characters and Variables
- Quotation Marks
- String Quoting - ", '
- Escape Character - *
- Command Substitution - `
- Using $(...)
- System Variables - set
- Additional Special Variables
- User-Defined Variables
- Removing Variables - unset
- Variables Within Scripts
- The Typeset Command
- Integer Variables
- Special Structures
Creating Menus
- Conditional Logic - case
- Building a Menu
- Loops - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting Loops
- Hidden Features - spawning a shell
- Handling Interrupts - trap
- Interrupt Handling Details
- Text Formatting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu
Selection
- Conditional Testing
- File Attribute Checks
- File Permission Checks
- Complex Tests - Nested ifs
- Alternative Tests - elseif
- Negation - NOT Condition
- Compound Conditions in a Single Test
- String Evaluation
- Using Square Brackets
- Preventing Null Input
- Numeric Testing
- Advanced case Usage
- Displaying Variable Values
- Spacing in Syntax
- Command Validation
Iteration, Looping
- Arithmetic - let
- Loops - while, until
- Infinite Cycles
- For Loops - for
- Handling Large Parameter Lists - shift
Sub-scripts and Functions
- Local vs. Global Scope
- Child Scripts
- The Export Command
- Exit Codes
- Aliases
- Defining Functions
- Commonly Used Functions
- Return Values
- Function Manipulation
- Functions in Scripting
Advanced Commands
- Debugging Modes - set
- Shell Settings - set
- Combining Files - join
- File Manipulation - paste, basename, dirname
- Process Management - jobs
- Regular Expressions
- Global Search - grep
- Extended Regex Search - egrep
- Fixed-String Search - fgrep
- Arithmetic Operations - expr
- Calculations – bc, eval Command
- Argument Handling
- The getopts Command
- Utilizing Arrays
Advanced Edit – vi & sed
- vi - Key Sequence Mapping
- Control Key Mapping
- Using Abbreviations
- Batch Editing Multiple Files
- Regular Expressions
- Global Insertion
- Here Document
- Stream Editor - sed, delete mode, print mode, suppression, quit, file input, multiple inputs
- Search and Replace
- sed Demonstration
Text File Processing - awk
- The awk Utility
- Pattern Matching
- Regular Expressions
- Comparative Patterns
- Combined Patterns
- Range Specifications
- Special Pattern Types
- Internal Functions
- Debugging awk Scripts
- Parameter Passing
- String Containment Checks
- The printf Function
- Arithmetic Operations
- Function Definition
- Substring Extraction - substr
- String Length - length
- Action Blocks
- Control Structures
- Array Usage
- Iterating Arrays - for Loops
- awk Demonstrations
Requirements
This programme is designed specifically for individuals who possess a solid working knowledge of UNIX 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.