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