Course Outline
Introduction
- Course Objectives
- Schedule
- Introduction to the Course
- Prerequisites
- Recommended Bibliography
- Delegate Responsibilities
- Course Summary
Review of Fundamentals - optional
- File Management
- Directories and Processes
- Listing Directories - ls
- Accessing Help - man
- Viewing Files - cat, more
- Basic Commands
- Piping - utilizing the | symbol
- Output Redirection - utilizing the > symbol
- Output Redirection - utilizing the >> symbol
- Input Redirection - utilizing the < symbol
- Redirecting Error Messages
- Utilizing /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special Files - . and ..
- The Command Prompt - PS1
- Establishing Aliases
- Implementing Aliases
- Command History
- Command Line Editing - via Arrow Keys
- Command Line Editing - via vi
- Shell Customization
- The Home Directory - HOME
- The Current Working Directory - pwd
- Navigating Directories - cd
- Creating Directories - mkdir
- Removing Directories - rmdir
- Interactive Copying - cp -i
- Interactive Moving - mv -i
- Interactive Removal - rm -i
- Removing Directories Recursively - rm -r
- Wildcards - Filename Expansion
- Counting Words - wc
- Locating Files - find
- Searching Text within Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Developing Shell Scripts
- Verifying Commands
- Creating Script Files
- Granting Execution Permissions
- Evaluating the Script
- Executing the Script - time
- Executing the Script - dot
- Executing the Script - exec
- Executing the Script - ksh
- Debugging the Script
- Passing Parameters
- The read Command
- Utilizing read within Scripts
- Selecting the Shell
- Refining the Output
- Suppressing Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Quoted Strings - `
- Utilizing $(...)
- System Variables - set
- Other Special Variables
- User Variables
- Unsetting User Variables - unset
- Variables within Scripts
- The Typeset Command
- Integer Variables
- Special Constructs
Developing Menus
- Conditions - case
- Building a Menu
- Iteration - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Breaking the Loop
- Hidden Option - forking a shell
- Catching Interrupts - trap
- Further Information on Interrupts
- Text Highlighting - tput
- Cursor Positioning - backtab \b
- Korn Shell Menu
Selection
- Conditional Testing
- Checking File Attributes
- Checking File Permissions
- Complex Tests - Nested ifs
- Complex Tests - elseif
- The NOT Condition
- Combining Multiple Conditions
- String Testing
- Utilizing Square Brackets
- Avoiding Null Input
- Number Testing
- Further Details on case
- Displaying Variables
- Inserting Spaces
- Command Testing
Iteration, Looping
- Calculations - let
- Iteration - while, until
- Infinite Loop
- Iteration - for
- Handling More than 9 Parameters - shift
Sub-scripts and Functions
- Local and Global Variables
- Sub-scripts
- Export Command
- Exit Status
- Aliases
- Functions
- Useful Functions
- Return Status
- Manipulating Functions
- Functions within Scripts
Advanced Commands
- Debugging - set
- Configuration - set
- Merging Files - join
- Merging Files - paste, basename and dirname
- Job Control - jobs
- Regular Expressions
- Global Regular Expression Printer - grep
- Extended Expression grep - egrep
- Fast grep - fgrep
- Calculations - expr
- Calculations – bc, eval Command,
- Argument Processing
- getopts Command
- Utilizing Arrays
Advanced Editing – vi & sed
- vi - Mapping Key Combinations
- Mapping Control Keys
- Utilizing Abbreviations
- Editing Multiple Files
- Regular Expressions
- Global Insert
- Here Document,
- Batch Stream Editor - sed, sed delete, -d, sed print, -p, sed suppress, -n, sed quit, -q, sed file, -f, sed Multiple Input, sed
- Find and Replace
- sed Example
Text File Processing - awk
- The awk Programming Tool
- Pattern Matching
- Regular Expressions
- Comparison Patterns
- Compound Patterns
- Range Patterns
- Special Patterns
- Built-in Functions
- Troubleshooting awk Scripts
- Passing Parameters
- Utilizing Contains
- printf Function
- Calculations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is exclusively intended for participants who possess a strong working knowledge of UNIX or have successfully completed the 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