The course is only suitable for those who have a good working knowledge of UNIX or have attended the Introduction to UNIX course.
This 2 day course gives an introduction to the writing of UNIX Shell scripts using the Korn and Bash shells and to the more advanced features of UNIX including the batch editor sed and the text file processing language awk.
Although based on the Solaris version of UNIX running on a desktop PC, the principles learnt may be applied to all other versions of UNIX including Linux, AIX, HP-UX and SCO.
The course takes the format of a workshop, with a mix of lecture, working examples and practical exercises. Although the content may be customised, at least 1 day is normally needed to cover the core elements.
Full course notes are provided along with sample script files and free software tools for use in accessing a UNIX server.
Introduction
- Objectives
- Course Schedule
- Course Introductions
- Pre-requisites
- Bibliography
- Delegate Responsibilities
- Course Summary
Review of Basics - optional
- Files
- Directories and Processes
- Displaying Directories - ls
- Getting Help - man
- Displaying Files - cat, more
- Simple Commands
- Piping - using | symbol
- Redirection - using > symbol
- Redirection - using >> symbol
- Redirecting Input - using < symbol
- Redirecting Errors
- Using /dev/null
- Foreground Jobs
- Background Jobs - &
- Stopping Jobs - kill
- Special Files - . and ..
- The Command Prompt - PS1
- Creating Aliases
- Using Aliases
- Command history
- Command Line Edit - using Arrow Keys
- Command Line Edit - using vi
- Customising the Shell
- The Home Directory - HOME
- The Working Directory - pwd
- Changing Directories - cd
- Make Directory - mkdir
- Remove Directory - rmdir
- Interactive Copy - cp -i
- Interactive Move - mv -i
- Interactive Remove - rm -i
- Removing Directories - rm -r
- Wild Cards - File Name Generation
- Word count - wc
- Finding Files - find
- Finding Text in Files - grep, sort, cut, uniq, tr
- Changing Permissions - chmod
Shell Programming
- Creating Shell Scripts
- Testing the Command
- Creating the Script File
- Adding 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
- Using read in Scripts
- Choosing the Shell
- Tidying The 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
- User Variables - unset
- Variables in Scripts
- Typeset Command
- Integer Variables
- Special Constructs
Creating Menus
- Conditions - case
- Creating a Menu
- Iteration - while, until
- Holding the Output - sleep
- Holding the Output - dummy read
- Ending the Script
- Ending the Loop
- Hidden Option - forking a shell
- Trapping Interrupts - trap
- More on Interrupts
- Highlighting Text- tput
- Positioning the Cursor - backtab \b
- Korn Shell Menu
Selection
- Conditional Testing
- Testing File Attributes
- Testing File Permissions
- Multiple Tests - Nested ifs
- Multiple Tests - elseif
- The NOT Condition
- Multiple Conditions in One Test
- Testing Strings
- Using Square Brackets
- Avoiding Null Input
- Testing Numbers
- More on case
- Displaying Variables
- Placing Spaces
- Testing Commands
Iteration, Looping
- Computations - let
- Iteration - while, until
- Infinite Loop
- Iteration - for
- 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 in Scripts
Advanced Commands
- Debugging - set
- Setting - set
- Merging Files - join
- Merging Files - paste, basename and dirname
- Job Control - jobs
- Regular Expressions
- Global Regular Expression Printer - grep
- Expression grep - egrep
- Fast grep - fgrep
- Computations - expr
- Computations – bc, eval Command,
- Argument Processing
- getopts Command
- Using Arrays
Advanced Edit – vi & sed
- vi - Mapping Key Combinations
- Mapping Control Keys
- Using Abbreviations
- Editing Many 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
- Using Contains
- printf Function
- Computations
- Functions
- substr
- length
- Action Statements
- Control Flow Statements
- Arrays
- Arrays with for Loops
- awk Examples
United Arab Emirates - UNIX/Linux Shell Scripting
Qatar - UNIX/Linux Shell Scripting
Egypt - UNIX/Linux Shell Scripting
Saudi Arabia - UNIX/Linux Shell Scripting
South Africa - UNIX/Linux Shell Scripting
Brasil - UNIX / Linux Shell Scripting
Canada - UNIX/Linux Shell Scripting
中国 - UNIX/Linux Shell Scripting
香港 - UNIX/Linux Shell Scripting
澳門 - UNIX/Linux Shell Scripting
台灣 - UNIX/Linux Shell Scripting
USA - UNIX/Linux Shell Scripting
Österreich - UNIX/Linux Shell Scripting
Schweiz - UNIX/Linux Shell Scripting
Deutschland - UNIX/Linux Shell Scripting
Czech Republic - UNIX/Linux Shell Scripting
Denmark - UNIX/Linux Shell Scripting
Estonia - UNIX/Linux Shell Scripting
Finland - UNIX/Linux Shell Scripting
Greece - UNIX/Linux Shell Scripting
Ireland - UNIX/Linux Shell Scripting
Luxembourg - UNIX/Linux Shell Scripting
Latvia - UNIX/Linux Shell Scripting
España - UNIX/Linux Shell Scripting
Italia - UNIX/Linux Shell Scripting
Lithuania - UNIX/Linux Shell Scripting
Nederland - UNIX/Linux Shell Scripting
Norway - UNIX/Linux Shell Scripting
Portugal - UNIX / Linux Shell Scripting
Sverige - UNIX/Linux Shell Scripting
Türkiye - UNIX/Linux Shell Scripting
Malta - UNIX/Linux Shell Scripting
Belgique - UNIX/Linux Shell Scripting
France - UNIX/Linux Shell Scripting
日本 - UNIX/Linux Shell Scripting
Australia - UNIX/Linux Shell Scripting
Malaysia - UNIX/Linux Shell Scripting
New Zealand - UNIX/Linux Shell Scripting
Philippines - UNIX/Linux Shell Scripting
Singapore - UNIX/Linux Shell Scripting
Thailand - UNIX/Linux Shell Scripting
Vietnam - UNIX/Linux Shell Scripting
India - UNIX/Linux Shell Scripting
Argentina - UNIX/Linux Shell Scripting
Chile - UNIX/Linux Shell Scripting
Costa Rica - UNIX/Linux Shell Scripting
Ecuador - UNIX/Linux Shell Scripting
Guatemala - UNIX/Linux Shell Scripting
Colombia - UNIX/Linux Shell Scripting
México - UNIX/Linux Shell Scripting
Panama - UNIX/Linux Shell Scripting
Peru - UNIX/Linux Shell Scripting
Uruguay - UNIX/Linux Shell Scripting
Venezuela - UNIX/Linux Shell Scripting
Polska - UNIX/Linux Shell Scripting
United Kingdom - UNIX/Linux Shell Scripting
South Korea - UNIX/Linux Shell Scripting
Pakistan - UNIX/Linux Shell Scripting
Sri Lanka - UNIX/Linux Shell Scripting
Bolivia - UNIX/Linux Shell Scripting
Indonesia - UNIX/Linux Shell Scripting
Kazakhstan - UNIX/Linux Shell Scripting
Morocco - UNIX/Linux Shell Scripting
Tunisia - UNIX/Linux Shell Scripting
Kuwait - UNIX/Linux Shell Scripting
Oman - UNIX/Linux Shell Scripting
Slovakia - UNIX/Linux Shell Scripting
Kenya - UNIX/Linux Shell Scripting
Nigeria - UNIX/Linux Shell Scripting
Botswana - UNIX/Linux Shell Scripting
Slovenia - UNIX/Linux Shell Scripting
Croatia - UNIX/Linux Shell Scripting
Serbia - UNIX/Linux Shell Scripting
Bhutan - UNIX/Linux Shell Scripting