Course Outline
Introduction
- Learning Objectives
- Course Itinerary
- Course Overview
- Entry Requirements
- Recommended Reading
- Participant Roles
- Course Recap
Foundations Review (Optional)
- Files
- Directories and Processes
- List Directory Contents - ls
- Accessing Manual Pages - man
- Viewing File Contents - cat, more
- Basic Commands
- Piping Data - using the | symbol
- Output Redirection - using the > symbol
- Appending Output - using the >> symbol
- Input Redirection - using the < symbol
- Error Redirection
- Utilizing /dev/null
- Foreground Tasks
- Background Tasks - &
- Terminating Tasks - kill
- Special Directory Entries - . and ..
- Customizing the Command Prompt - PS1
- Creating Shortcuts
- Utilizing Shortcuts
- Command History
- Line Editing - using Arrow Keys
- Line Editing - using vi
- Personalizing the Shell
- User Home Directory - HOME
- Current Working Directory - pwd
- Navigating Directories - cd
- Create New Directory - mkdir
- Delete Directory - rmdir
- Safe Copy - cp -i
- Safe Move - mv -i
- Safe Deletion - rm -i
- Recursive Deletion - rm -r
- Wildcards - Filename Pattern Matching
- Counting Words - wc
- Locating Files - find
- Searching Text - grep, sort, cut, uniq, tr
- Modifying Access Rights - chmod
Shell Scripting Basics
- Writing Shell Scripts
- Validating Commands
- Generating the Script File
- Granting Execution Rights
- Testing the Script
- Executing the Script - time
- Executing the Script - dot
- Executing the Script - exec
- Executing the Script - ksh
- Script Debugging
- Passing Arguments
- The read Command
- Utilizing read in Scripts
- Selecting the Shell Interpreter
- Formatting Output
- Suppressing Input Echo - stty
Special Characters and Variables
- Quotation Marks
- Enclosed Strings - " and '
- Escape Sequences - *
- Backquoted Strings - `
- Using $(...)
- System Environment Variables - set
- Other Special Variables
- Custom User Variables
- Removing Variables - unset
- Variables within Scripts
- The typeset Command
- Integer Handling
- Advanced Syntax Constructs
Building Interactive Menus
- Conditional Logic - case
- Constructing a Menu Interface
- Loops - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting Loops
- Hidden Features - Forgetting a Shell
- Catching Interrupts - trap
- Advanced Interrupt Handling
- Text Formatting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menus
Conditional Logic
- Conditional Testing
- Checking File Properties
- Checking File Permissions
- Complex Conditions - Nested ifs
- Complex Conditions - elseif
- Negation - NOT Condition
- Combining Conditions in a Single Test
- String Evaluation
- Using Square Brackets for Tests
- Preventing Empty Input
- Numeric Evaluation
- Advanced case Statements
- Displaying Variable Values
- Spacing Considerations
- Testing Command Return Values
Iteration and Loops
- Arithmetic - let
- Looping Constructs - while, until
- Infinite Loops
- For Loops
- Handling More than 9 Parameters - shift
Sub-scripts and Functions
- Scope: Local vs Global Variables
- Sub-scripts
- The export Command
- Exit Status Codes
- Shell Aliases
- Defining Functions
- Commonly Used Functions
- Return Status from Functions
- Modifying Function Behavior
- Functions within Scripts
Advanced Shell Utilities
- Debugging Modes - set
- Shell Settings - set
- Combining Files - join
- Concatenating Files - paste, basename, dirname
- Process Management - jobs
- Regular Expressions
- Basic Pattern Matching - grep
- Extended Pattern Matching - egrep
- Fixed-String Matching - fgrep
- Arithmetic Evaluation - expr
- Calculator and Evaluation - bc, eval
- Argument Parsing
- The getopts Command
- Working with Arrays
Advanced Editing – vi & sed
- vi - Key Mappings
- Mapping Control Keys
- Using Abbreviations
- Editing Multiple Files
- Regular Expressions
- Global Insertion
- Here Documents
- Stream Editing - sed (delete, -d; print, -p; suppress, -n; quit, -q; file, -f; multiple input)
- Search and Replace
- sed Practical Examples
Text Processing - awk
- The awk Utility
- Pattern Matching
- Regular Expressions
- Comparison Patterns
- Compound Patterns
- Range Patterns
- Special Patterns
- Built-in Functions
- Debugging awk Scripts
- Passing Arguments
- Using the Contains Operator
- Formatted Output - printf
- Calculations
- User-Defined Functions
- String Substring - substr
- String Length - length
- Action Blocks
- Control Flow Statements
- Arrays in awk
- Iterating Arrays with for Loops
- awk Practical Examples
Requirements
This course is designed specifically for individuals who possess a solid understanding of UNIX or have previously completed an Introduction to UNIX course.
Testimonials (7)
the additional course material is great, and can be used later on; the trainer was engaging throughout sessions, maintained a great energy, helped us a lot in the exercises and was patient, encourage us to keep practicing, shared real productive examples where we would need the samples that were shared during the training hours.
Ionelia
Course - Shell Scripting UNIX/Linux
learning bash
ALIN CRISTIAN
Course - Shell Scripting UNIX/Linux
bash scripting - practice exercises
Ionut D
Course - Shell Scripting UNIX/Linux
Large reach on bash subject.
Catalin Opris
Course - Shell Scripting UNIX/Linux
I liked that we practiced a lot of theory, which is the perfect way to learn new things.
Roxana
Course - Shell Scripting UNIX/Linux
I liked that the trainer adapted to each person and made analogies with real situations
AnaMaria
Course - Shell Scripting UNIX/Linux
Practical approach