Course Outline
Introduction
- Course Objectives
- Schedule Overview
- Participant Introductions
- Prerequisites
- Recommended Bibliography
- Participant Responsibilities
- Summary of Course Content
Review of Fundamentals (Optional)
- File Management
- Directories and Processes
- Listing Directory Contents - ls
- Accessing Help - man
- Viewing File Contents - cat, more
- Basic Commands
- Piping - using the | symbol
- Output Redirection - using the > symbol
- Appended Redirection - using the >> symbol
- Input Redirection - using the < symbol
- Error Redirection
- Usage of /dev/null
- Foreground Processes
- Background Processes - &
- Terminating Processes - kill
- Special Directory Entries - . and ..
- Configuring the Command Prompt - PS1
- Creating Aliases
- Utilizing Aliases
- Command History
- Editing Command Line - using Arrow Keys
- Editing Command Line - using vi
- Customizing Shell Environment
- Home Directory - HOME
- Current Working Directory - pwd
- Changing Directory - cd
- Creating Directories - mkdir
- Removing Directories - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Deletion - rm -i
- Recursive Directory Removal - rm -r
- Wildcards - File Name Globbing
- Word Counting - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Creating Shell Scripts
- Testing Commands
- Creating Script Files
- Granting Execute Permissions
- Testing Scripts
- Execution via Time Command
- Execution via Dot Command
- Execution via Exec Command
- Execution via ksh
- Script Debugging
- Passing Parameters
- The read Command
- Incorporating read in Scripts
- Selecting the Shell
- Formatting Output
- Suppressing Input Echo - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Characters - *
- Quoted Strings - `
- Utilizing $(...)
- System Variables - set
- Other Special Variables
- User-Defined Variables
- Removing Variables - unset
- Variables Within Scripts
- The Typeset Command
- Integer Variables
- Special Constructs
Creating Menus
- Conditional Logic - case
- Building a Menu
- Looping - while, until
- Pacing Output - sleep
- Pacing Output - dummy read
- Terminating the Script
- Exiting the Loop
- Hidden Options - forking a shell
- Catching Interrupts - trap
- Advanced Interrupt Handling
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu Implementation
Selection Logic
- Conditional Testing
- Checking File Attributes
- Verifying File Permissions
- Nested Conditionals
- Multiple Conditions - elseif
- Negation - NOT Condition
- Compound Conditions
- String Testing
- Usage of Square Brackets
- Preventing Null Input
- Numeric Testing
- Advanced case Statements
- Displaying Variable Values
- Spacing Considerations
- Testing Command Execution
Iteration and Looping
- Arithmetic Operations - let
- Loop Structures - while, until
- Infinite Loops
- Loop Structures - for
- Handling Excessive Parameters - shift
Sub-scripts and Functions
- Scope: Local and Global Variables
- Sub-scripts
- The Export Command
- Exit Status Codes
- Aliases
- Functions
- Practical Functions
- Return Status
- Manipulating Functions
- Integrating Functions in Scripts
Advanced Commands
- Debugging Mode - set
- Shell Settings - set
- Combining Files - join
- Merging Data - paste, basename, dirname
- Job Management - jobs
- Regular Expressions
- Pattern Search - grep
- Extended Regular Expressions - egrep
- Fixed-String Search - fgrep
- Arithmetic Evaluation - expr
- Calculations using bc and eval
- Argument Processing
- Option Parsing - getopts
- Array Usage
Advanced Editing – vi & sed
- vi - Key Mapping
- Mapping Control Keys
- Using Abbreviations
- Batch File Editing
- Regular Expressions
- Global Insertions
- Here Documents
- Stream Editing with sed (delete, print, suppress, quit, file, multi-input)
- Search and Replace
- sed Practical Examples
Text File Processing - awk
- The awk Programming Environment
- Pattern Matching
- Regular Expressions
- Comparison Patterns
- Compound Patterns
- Range Patterns
- Special Patterns
- Native Functions
- Debugging awk Scripts
- Parameter Passing
- String Containment
- Formatted Output - printf
- Arithmetic Calculations
- Function Definitions
- String Substring Extraction
- String Length Determination
- Action Statements
- Control Flow Logic
- Data Structures - Arrays
- Iterating Arrays
- Practical awk Examples
Requirements
This course is designed for individuals who possess a solid practical understanding of UNIX or have previously completed an introductory 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.