Course Outline
Introduction
- Learning Objectives
- Course Itinerary
- Session Introductions
- Prerequisites
- Reference Bibliography
- Participant Responsibilities
- Course Overview
Review of Basics - optional
- Files
- Directories and Processes
- List Directories - ls
- Access Help - man
- Display File Contents - cat, more
- Basic Commands
- Piping - using | symbol
- Output Redirection - using > symbol
- Output Redirection - using >> symbol
- Input Redirection - using < symbol
- Error Redirection
- Using /dev/null
- Foreground Tasks
- Background Tasks - &
- Terminating Tasks - kill
- Special Directories - . and ..
- Command Prompt - PS1
- Defining Aliases
- Utilizing Aliases
- Command History
- Command Line Editing - via Arrow Keys
- Command Line Editing - via vi
- Shell Customization
- Home Directory - HOME
- Working Directory - pwd
- Navigating Directories - cd
- Create Directory - mkdir
- Delete Directory - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Delete - rm -i
- Recursive Delete - rm -r
- Wildcards - Filename Generation
- Counting Words - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Verifying Commands
- Generating Script Files
- Granting Execution Permissions
- Testing Scripts
- Executing Scripts - time
- Executing Scripts - dot
- Executing Scripts - exec
- Executing Scripts - ksh
- Troubleshooting Scripts
- Passing Arguments
- The read Command
- Applying read in Scripts
- Selecting the Shell
- Formatting Output
- Suppressing Input - stty
Special Characters and Variables
- Quotation Marks
- String Quoting - ", '
- Escape Character - *
- String Quoting - `
- Utilizing $(...)
- System Variables - set
- Additional Special Variables
- User-Defined Variables
- Unsetting Variables - unset
- Variables within Scripts
- The typeset Command
- Integer Variables
- Special Syntax Constructs
Building Menus
- Conditional Logic - case
- Constructing Menus
- Loops - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting the Loop
- Hidden Options - shell forking
- Catching Interrupts - trap
- Further Interrupt Handling
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menus
Selection Logic
- Conditional Checks
- File Attribute Testing
- File Permission Testing
- Composite Checks - Nested ifs
- Composite Checks - elseif
- Negation - NOT Condition
- Multiple Conditions in Single Test
- String Validation
- Utilizing Square Brackets
- Handling Empty Input
- Numeric Validation
- Advanced case Usage
- Variable Display
- Spacing Considerations
- Command Validation
Iteration and Looping
- Calculations - let
- Looping - while, until
- Endless Loops
- Looping - for
- Handling Excess Parameters - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-scripts
- The export Command
- Exit Status Codes
- Aliases
- Functions
- Essential Functions
- Return Status
- Function Manipulation
- Functions in Scripts
Advanced Commands
- Debugging - set
- Configuration - set
- Merging Files - join
- Merging Files - paste, basename, and dirname
- Task Management - jobs
- Regular Expressions
- Global Regex Printer - grep
- Extended Regex - egrep
- Fixed String Regex - fgrep
- Calculations - expr
- Calculations – bc, eval Command,
- Argument Handling
- The getopts Command
- Utilizing Arrays
Advanced Edit – vi & sed
- vi - Key Combination Mapping
- Control Key Mapping
- Using Abbreviations
- Bulk File Editing
- Regular Expressions
- Global Insertion
- Here documents,
- 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 Utility
- Pattern Matching
- Regular Expressions
- Comparison Patterns
- Composite Patterns
- Range Patterns
- Special Patterns
- Native Functions
- awk Troubleshooting
- Parameter Passing
- String Containment
- The printf Function
- Mathematical Operations
- Functions
- substr
- length
- Action Logic
- Control Flow
- Arrays
- Arrays in Loops
- awk Examples
Requirements
This course is designed exclusively for individuals possessing a solid working proficiency in UNIX or those who have previously 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.