Bash Scripting
Target Audience
- Experienced UNIX/Linux user
 - System administrators who would like to save time by automating tasks.
 - DevOps engineers who need to automate processes.
 - Anyone who needs to make their life on UNIX
 
Prerequisites
- In order to take this course you must have working knowledge of the UNIX shell.
 - Be able to use at least one Unix/Linux editor. Preferably Vim or Emacs.
 
Objectives
- To be able to write and maintain scripts written in Bash
 
Course Format
- Total length of the course is 16-24 academic hours. (2-3 days.)
 - About 50% of the time is hands on lab work.
 
Syllabus
- Bash and Bash scripts
          
- Shell types
 - Advantages of Bash
 - Executing commands
 - Shell building blocks (syntax, shell commands, shell functions)
 
 - Writing and debugging scripts
          
- Hello world
 - Creating script
 - Executing script
 - Sh-bang
 - Comments
 - Debugging
 
 - The Bash environment
          
- Shell initialization files
 - Configuration files
 - Variables (Global and Local)
 - Creating variables
 - Using variables
 - Exporting variables
 - Strings and Quoting characters
 - Shell expansion
 - Aliases
 - Displaying and changing Options
 - Pipelines
 
 - Wildcards are not Regexes
          
- Wildcards
 - Character Classes
 
 - Regular Expressions
          
- grep, egrep
 - Character classes
 
 - sed (Stream EDitor)
          
- Printing lines containing a pattern
 - Deleting lines of input containing a pattern
 - Ranges of lines
 - Find and replace with sed
 
 - awk (Gawk The GNU awk programming language)
          
- Getting Started with awk commands
 - Printing selected fields
 - The input field separator
 - The output field separator
 - The BEGIN and END blocks
 - User defined variables
 
 - Control Flow and Conditional statements
          
- if, then, else, fi
 - Checking command line arguments
 - Testing the number of arguments
 - Testing that a file exists
 - Comparison Operators
 - Boolean operations
 - Nested if/then Condition Tests
 - exit status codes
 - case
 
 - Writing interactive scripts I/O
          
- Displaying user messages using echo
 - Catching user input using the read built-in command
 - Prompting for user input
 - Redirection and file descriptors
 - File input and output
 - Here documents
 
 - Loops for Repetitive tasks
          
- The for loop
 - The while loop
 - The until loop
 - Break and continue
 - Making menus with the select built-in
 - The shift built-in
 
 - Types of Variables
          
- Scalars
 - Arrays
 - Constants (readonly variables)
 - Operations on variables
 - Variable assignment
 - Variable substitution
 
 - Functions
          
- Function syntax
 - Positional parameters in functions
 - Listing functions
 
 - Catching signals
          
- What are Signals
 - How to send signals
 - Trapping signals
 
 - Useful shell commands
          
- awk
 - cat
 - cd
 - chgrp
 - chmod
 - chown
 - cp
 - cut
 - echo
 - egrep
 - exit
 - getops
 - grep
 - head
 - ls
 - mv
 - pwd
 - sed
 - sort
 - tail
 - touch
 - uniq
 - wc
 
 
Contact
Contact: Gabor Szabo gabor@hostlocal.com
Phone: +972-54-4624648