Course Outline
Introduction
- Learning Objectives
- Schedule Overview
- Participant Introductions
- Required Prerequisites
- Reference Materials
- Participant Expectations
- Course Summary
Foundational Review - Optional
- File Management
- Directories and Process Management
- List Directory Contents - ls
- Accessing Help Documentation - man
- Viewing File Contents - cat, more
- Basic Command Usage
- Command Piping - using the | symbol
- Output Redirection - using the > symbol
- Appended Redirection - using the >> symbol
- Input Redirection - using the < symbol
- Handling Standard Errors
- Discarding Output via /dev/null
- Managing Foreground Jobs
- Running Background Jobs - &
- Terminating Jobs - kill
- Navigating Special Directories - . and ..
- Customizing the Prompt - PS1
- Defining Aliases
- Utilizing Aliases
- Reviewing Command History
- Editing Commands - Arrow Key Navigation
- Editing Commands - vi Interface
- Personalizing the Shell Environment
- Home Directory Access - HOME
- Checking Current Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Deleting Directories - rmdir
- Safe Copy Operations - cp -i
- Safe Move Operations - mv -i
- Safe Deletion Operations - rm -i
- Recursive Directory Deletion - rm -r
- Pattern Matching - Filename Generation
- Counting Words and Lines - wc
- Locating Files - find
- Searching Within Files - grep, sort, cut, uniq, tr
- Modifying Access Permissions - chmod
Shell Programming Fundamentals
- Writing Initial Shell Scripts
- Validating Commands
- Constructing Script Files
- Granting Execute Privileges
- Verifying Script Execution
- Measuring Execution Time - time
- Sourcing Scripts - dot
- Replacing Shell Process - exec
- Executing with ksh
- Troubleshooting Scripts
- Passing Input Parameters
- The read Command
- Utilizing read in Automation
- Selecting the Appropriate Shell
- Formatting Output
- Hiding Input - stty
Special Characters and Variable Management
- Using Quotation Marks
- Defining Quoted Strings - ", '
- Escape Sequences - *
- Command Substitution - `
- Modern Substitution Syntax - $(...)
- System Variables - set
- Additional Special Variables
- User-Defined Variables
- Removing Variables - unset
- Variable Scope in Scripts
- Declaring Types - typeset
- Handling Integers
- Advanced Syntax Constructs
Menu Development
- Conditional Logic - case
- Building Menus
- Looping with while and until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating Scripts
- Breaking Loops
- Advanced Option - forking a subshell
- Handling Signals - trap
- Advanced Signal Handling
- Highlighting Text - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu Implementation
Conditional Logic
- Evaluating Conditions
- Inspecting File Properties
- Checking File Permissions
- Complex Logic - Nested if statements
- Alternative Conditions - elseif
- Negating Conditions - NOT
- Combining Multiple Conditions
- String Evaluation
- Using Square Brackets
- Preventing Null Inputs
- Numeric Testing
- Advanced case Statements
- Displaying Variable Values
- Spacing Best Practices
- Testing Command Exit Status
Iteration and Looping
- Arithmetic Operations - let
- Loops with while and until
- Infinite Loops
- Loops with for
- Handling Excess Parameters - shift
Sub-shells and Functions
- Variable Scope - Local vs. Global
- Creating Sub-shells
- Exporting Variables - export
- Checking Exit Status
- Managing Aliases
- Defining Functions
- Essential Functions
- Return Status Codes
- Managing Function Behavior
- Functions within Scripts
Advanced Command Usage
- Debugging Mode - set
- Configuration Options - set
- Merging Data Streams - join
- Merging Files - paste, basename, dirname
- Job Control - jobs
- Regular Expressions
- Basic Pattern Matching - grep
- Extended Regular Expressions - egrep
- Fixed-String Matching - fgrep
- Arithmetic Evaluation - expr
- Calculations - bc, eval Command,
- Processing Arguments
- Option Parsing - getopts
- Working with Arrays
Advanced Editing - vi & sed
- vi - Key Combination Mapping
- Mapping Control Keys
- Leveraging Abbreviations
- Batch Editing Multiple Files
- Regular Expressions
- Global Insertion
- Here Documents,
- Stream Editor - sed (delete, -d; print, -p; suppress, -n; quit, -q; file, -f; Multiple Input)
- Find and Replace Operations
- sed Walkthrough
Text Processing with awk
- Introduction to awk
- Pattern Matching
- Regular Expressions
- Comparative Patterns
- Compound Patterns
- Range Patterns
- Special Pattern Types
- Native Functions
- Debugging awk Scripts
- Parameter Passing
- Using the contains operator
- Formatted Output - printf
- Mathematical Operations
- Custom Functions
- Substring Extraction - substr
- Length Determination - length
- Action Blocks
- Control Flow Structures
- Array Handling
- Iterating Arrays with for Loops
- awk Practical Examples
Requirements
This course is designed specifically for individuals who possess a solid working knowledge of UNIX or who have completed the 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.