Course Outline
Introduction
- Learning Objectives
- Course Schedule
- Introductions
- Prerequisites
- Bibliography
- Participant Responsibilities
- Course Summary
Review of Basics - Optional
- Files
- Directories and Processes
- Listing Directories - ls
- Accessing Help - man
- Viewing Files - cat, more
- Basic Commands
- Piping - using the | symbol
- Redirection - using the > symbol
- Redirection - using the >> symbol
- Input Redirection - using the < symbol
- Error Redirection
- Using /dev/null
- Foreground Jobs
- Background Jobs - &
- Terminating Jobs - kill
- Special Files - . and ..
- Command Prompt - PS1
- Creating Aliases
- Utilising Aliases
- Command History
- Command Line Editing - using Arrow Keys
- Command Line Editing - using vi
- Customising the Shell
- The Home Directory - HOME
- The Working Directory - pwd
- Changing Directories - cd
- Creating Directories - mkdir
- Removing Directories - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Remove - rm -i
- Recursively Removing Directories - rm -r
- Wild Cards - File Name Generation
- Word Count - wc
- Locating Files - find
- Searching Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Writing Shell Scripts
- Command Testing
- Creating Script Files
- Granting Execute Permissions
- Testing 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
- Utilising read in Scripts
- Selecting the Shell
- Formatting Output
- Suppressing Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Character - *
- Quoted Strings - `
- Using $(...)
- System Variables - set
- Other Special Variables
- User Variables
- Unsetting User Variables - unset
- Variables in Scripts
- The typeset Command
- Integer Variables
- Special Constructs
Creating Menus
- Conditions - case
- Building a Menu
- Iteration - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting the Loop
- Hidden Option - forking a shell
- Trapping Interrupts - trap
- Additional Interrupt Concepts
- Highlighting Text - tput
- Cursor Positioning - backtab \b
- Korn Shell Menus
Selection
- Conditional Testing
- Testing File Attributes
- Testing File Permissions
- Multiple Tests - Nested ifs
- Multiple Tests - elseif
- The NOT Condition
- Combined Conditions in a Single Test
- String Testing
- Using Square Brackets
- Preventing Null Input
- Numeric Testing
- Advanced case Usage
- Displaying Variables
- Spacing Considerations
- Command Testing
Iteration and Looping
- Calculations - let
- Iteration - while, until
- Infinite Loops
- Iteration - for
- Handling More Than 9 Parameters - shift
Sub-scripts and Functions
- Local vs. Global Variables
- Sub-scripts
- The export Command
- Exit Status
- Aliases
- Functions
- Commonly Useful Functions
- Return Status
- Managing 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 grep - egrep
- Fixed-string grep - fgrep
- Calculations - expr
- Calculations - bc, eval Command,
- Argument Processing
- The getopts Command
- Utilising Arrays
Advanced Editing - vi & sed
- vi - Key Combination Mapping
- Control Key Mapping
- Using Abbreviations
- Editing Multiple Files
- Regular Expressions
- Global Insertion
- Here Documents,
- Batch Stream Editor - sed, sed delete (-d), sed print (-p), sed suppress (-n), sed quit (-q), sed file (-f), sed multiple inputs, sed
- Find and Replace
- sed Examples
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
- Using the contains Function
- The printf Function
- Calculations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is intended for individuals who possess a solid working knowledge of UNIX or who have previously completed an 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.