Course Outline
Introduction
- Learning Objectives
- Course Timetable
- Session Introductions
- Prerequisites
- Reference Materials
- Participant Responsibilities
- Course Overview
Review of Basics - Optional
- Files
- Directories and Processes
- Listing Directory Contents - ls
- Accessing Help Documentation - man
- Viewing File Contents - cat, more
- Basic Commands
- Piping - utilizing the | symbol
- Output Redirection - utilizing the > symbol
- Output Redirection - utilizing the >> symbol
- Input Redirection - utilizing the < symbol
- Error Redirection
- Utilizing /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special Files - . and ..
- The Command Prompt - PS1
- Defining Aliases
- Applying Aliases
- Command History
- Editing the Command Line - utilizing Arrow Keys
- Editing the Command Line - utilizing vi
- Customizing the Shell Environment
- The Home Directory - HOME
- The Current Working Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Deleting Directories - rmdir
- Interactive Copying - cp -i
- Interactive Moving - mv -i
- Interactive Deletion - rm -i
- Recursive Directory Removal - rm -r
- Wildcards - Filename Generation
- Counting Words - wc
- Locating Files - find
- Searching Text within Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Validating Commands
- Creating Script Files
- Granting Execute Permissions
- Verifying Script Execution
- Executing Scripts - time
- Executing Scripts - dot
- Executing Scripts - exec
- Executing Scripts - ksh
- Debugging Scripts
- Handling Parameters
- The read Command
- Incorporating read in Scripts
- Selecting the Shell
- Formatting Output
- Disabling Echo Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Quoted Strings - `
- Using $(...)
- System Variables - set
- Additional Special Variables
- User-Defined Variables
- Removing User Variables - unset
- Variables within Scripts
- The typeset Command
- Integer Variables
- Advanced Constructs
Building Menus
- Conditional Logic - case
- Constructing a Menu
- Loops - while, until
- Delaying Output - sleep
- Delaying Output - dummy read
- Terminating the Script
- Exiting Loops
- Hidden Options - forking a shell
- Catching Interrupts - trap
- Advanced Interrupt Handling
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menus
Selection Logic
- Conditional Checks
- Checking File Attributes
- Checking File Permissions
- Complex Checks - Nested ifs
- Complex Checks - elseif
- Negation - The NOT Condition
- Compound Conditions in Single Tests
- String Comparison
- Using Square Brackets
- Preventing Null Input
- Numeric Comparison
- Advanced case Statements
- Displaying Variable Values
- Managing Whitespace
- Testing Command Execution
Iteration and Looping
- Arithmetic Operations - let
- Loop Structures - while, until
- Infinite Loops
- Loop Structures - for
- Handling Parameters Beyond 9 - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-scripts
- The export Command
- Exit Status Codes
- Aliases
- Defining Functions
- Commonly Used Functions
- Return Status
- Managing Functions
- Functions within Scripts
Advanced Commands
- Debugging Mode - set
- Configuration - set
- Combining Files - join
- Combining Files - paste, basename, and dirname
- Job Management - jobs
- Regular Expressions
- Basic Search - grep
- Extended Search - egrep
- Fast Search - fgrep
- Arithmetic Evaluation - expr
- Arithmetic Evaluation – bc, eval Command,
- Argument Parsing
- The getopts Command
- Utilizing Arrays
Advanced Editing – vi & sed
- vi - Key Combination Mapping
- Control Key Mapping
- 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
- Search and Replace
- sed Demonstration
Text File Processing - awk
- The awk Programming Utility
- Pattern Matching
- Regular Expressions
- Comparative Patterns
- Compound Patterns
- Range Patterns
- Special Patterns
- Native Functions
- Diagnosing awk Scripts
- Passing Parameters
- Using Contains
- printf Function
- Calculations
- Functions
- Substrings - substr
- String Length - length
- Action Blocks
- Flow Control
- Arrays
- Arrays in for Loops
- awk Case Studies
Requirements
This course is recommended for individuals possessing a solid working knowledge of UNIX or who 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