Course Outline
Introduction
- Learning Objectives
- Schedule
- Course Introductions
- Prerequisites
- Bibliography
- Delegate Responsibilities
- Course Summary
Review of Basics - Optional
- Files
- Directories and Processes
- Displaying Directories - ls
- Getting Help - man
- Displaying Files - cat, more
- Basic Commands
- Piping - using | symbol
- Output Redirection - using > symbol
- Output Redirection - using >> symbol
- Input Redirection - using < symbol
- Error Redirection
- Utilizing /dev/null
- Foreground Jobs
- Background Jobs - &
- Stopping Jobs - kill
- Special Files - . and ..
- The Command Prompt - PS1
- Creating Aliases
- Using Aliases
- Command History
- Command Line Editing - Arrow Keys
- Command Line Editing - vi editor
- Customizing 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
- Recursive Directory Removal - rm -r
- Wildcards - Filename Expansion
- Word Count - wc
- Finding Files - find
- Searching for Text in Files - grep, sort, cut, uniq, tr
- Modifying Permissions - chmod
Shell Programming
- Creating Shell Scripts
- Verifying Commands
- Generating the Script File
- Setting Execute Permissions
- Testing the Script
- Running the Script - time
- Running the Script - dot (.)
- Running the Script - exec
- Running the Script - ksh
- Debugging the Script
- Passing Parameters
- The read Command
- Incorporating read in Scripts
- Selecting the Shell
- Formatting Output
- Suppressing Input - stty
Special Characters and Variables
- Quotation Marks
- Quoted Strings - ", '
- Escape Characters - *
- Quoted Strings - `
- Using $(...)
- System Variables - set
- Other Special Variables
- User-Defined Variables
- User-Defined Variables - unset
- Variables in Scripts
- Typeset Command
- Integer Variables
- Special Constructs
Creating Menus
- Conditional Logic - case
- Constructing a Menu
- Iteration - while, until
- Pausing Output - sleep
- Pausing Output - dummy read
- Terminating the Script
- Exiting the Loop
- Hidden Option - Forking a Shell
- Handling Interrupts - trap
- Further Discussion on Interrupts
- Highlighting Text - tput
- Moving the Cursor - backtab \b
- Korn Shell Menu
Selection
- Conditional Testing
- Evaluating File Attributes
- Evaluating File Permissions
- Multiple Tests - Nested ifs
- Multiple Tests - elseif
- The NOT Condition
- Combining Multiple Conditions
- Testing Strings
- Using Square Brackets
- Preventing Null Input
- Testing Numbers
- Additional Insights on case
- Displaying Variables
- Inserting Spaces
- Testing Commands
Iteration and Looping
- Arithmetic Operations - let
- Iteration - while, until
- Infinite Loops
- Iteration - for
- Handling More Than 9 Parameters - shift
Sub-scripts and Functions
- Local and Global Variables
- Sub-scripts
- Export Command
- Exit Status
- Aliases
- Functions
- Utility Functions
- Return Status
- Managing Functions
- Functions within Scripts
Advanced Commands
- Debugging - set
- Configuration - set
- Merging Files - join
- Merging Files - paste, basename, dirname
- Job Control - jobs
- Regular Expressions
- Global Regular Expression Printer - grep
- Extended grep - egrep
- Fixed-string grep - fgrep
- Arithmetic Operations - 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
- Stream Editor - sed, delete (-d), print (-p), suppress (-n), quit (-q), file (-f), Multiple Input
- 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
- Using Contains
- printf Function
- Computations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
Requirements
This course is designed for individuals who possess a solid working knowledge of UNIX or have 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