LINUX SHELL SCRIPTING Training in Cary

Enroll in or hire us to teach our LINUX SHELL SCRIPTING class in Cary, North Carolina by calling us @303.377.6176. Like all HSG classes, LINUX SHELL SCRIPTING may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, LINUX SHELL SCRIPTING may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

 
Designed to provide the skills necessary to automate tasks on a Unix or Linux system. Systems Administrators and Developers alike can avoid errors, save time and money by replacing repetitive work patterns with shell scripts. Care has been taken to present in a format that benefits all students, with or without previous programming experience. Guru Labs believes that the best way to learn shell scripting is writing shell scripts. For this reason, lab time is emphasized. Early labs present the scripting process step by step, while later labs are presented in a challenge format. While official solutions to each lab task are provided, students are encouraged to create their own before examining the solution. In this way, more experienced students are challenged without overwhelming the less experienced.
Course Length: 2 Days
Course Tuition: $990 (US)

Prerequisites

Solid understanding of Unix-based systems and proficiency on the Unix or Linux command line.

Course Outline

 
  1. INTRODUCTION TO THE SHELL
    1. Shell Script Strengths and Weaknesses
    2. Shells
    3. Switching User Contexts
    4. Example Shell Script
    5. Shell and Environment Variables
    6. Key Environment Variables
    7. Which and Type
    8. General Quoting Rules
    9. Nesting Commands
    10. Help from Commands and Documentation
    11. whereis
    12. Getting Help Within the Graphical Desktop
    13. Getting Help with man & info
    LAB TASKS
    1. Shell Variables
    2. Shell Meta-Characters
    3. Command Substitution
  2. SHELL SCRIPTING BASICS
    1. Positional Parameters
    2. Input & Output
    3. printf
    4. alias
    5. Functions
    6. Colors in Scripts
    7. Custom Bash Prompts
    LAB TASKS
    1. Aliases
    2. Bash Login Scripts
    3. Create "userinfo" and "sysinfo" functions
  3. WORKING WITH FILES
    1. Communication Channels
    2. File Redirection
    3. Piping Commands Together
    4. Doing Math
    5. Filesystem Structures
    6. Determining Disk Usage With df and du
    7. cron
    8. The crontab Command
    9. crontab Format
    10. /etc/cron.*/ Directories
    11. Sending Email with mailx
    LAB TASKS
    1. Disk and Filesystem Usage
    2. Redirection and Pipes
  4. REGULAR EXPRESSIONS
    1. Searching Inside Files
    2. Regular Expression Overview
    3. Regular Expressions
    4. RE Character Classes
    5. Regex Quantifiers
    6. RE Parenthesis
    7. The Streaming Editor
    LAB TASKS
    1. Pattern Matching with Regular Expressions
    2. Extended Regular Expressions
    3. Using Regular Expressions With sed
  5. BRANCHING AND LOOPING
    1. Exit Status
    2. Comparisons with test
    3. Conditional Statements
    4. Flow Control: case
    5. Flow Control: while and until Loops
    6. The borne for-Loop
    7. Flow Control: select
    LAB TASKS
    1. Reporting User Statistics
    2. Monitoring Filesystem Usage
  6. DATA MUNGING
    1. Text Processing with Awk
    2. Text Sorting
    3. Duplicate Removal Utility
    4. Extracting Columns of Text
    LAB TASKS
    1. Create "rmhost" function
    2. Create "showenv" function
    3. Parsing Mail Server Logs
    4. Fixing Incorrect Files
  7. SECURITY, WHITESPACE, AND OTHER GOTCHAS
    1. Gotcha: Quoting Variables
    2. Gotcha: Locales
    3. Gotchas: Maximum Command Length
    4. Gotcha: Whitespace in for Loops
    5. Reading Files with while
    6. Gotcha: $IFS
    7. Gotcha: Printing in .bashrc
    8. Gotcha: Aliases
    LAB TASKS
    1. Renaming MP3 Files
    2. Split and Display $PATH
    3. A tar-based Backup
  1. CHALLENGE
    1. Apache Configuration Files
    2. httpd.conf – VirtualHost Configuration
    LAB TASKS
    1. Automated Virtual Host Provisioning
  2. EMACS
    1. Emacs
    2. The Emacs Interface
    3. Basic Emacs
    4. More Emacs Commands
    LAB TASKS
    1. Text Editing with Emacs
  3. THE SECURE SHELL (SSH)
    1. OpenSSH Client & Server Configuration
    2. Accessing Remote Shells
    3. Transferring Files
    4. SSH Key Management

Linux Unix Uses & Stats

Linux Unix is Used For:
Desktop Mainframe Computers Mobile Devices Embedded Devices
Difficulty
Popularity
Year Created
1991/1971
Pros
Performance:
Linux supports many efficient tools and operates them seamlessly. Because it's architecture is lightweight it runs faster than both Windows 8.1 and 10. 
 
Security:
Because Linux is an open-source software,  anyone can contribute code to help enhance the users’ experience i.e., adding features, fixing bugs, reducing security risks, and more.
 
 
Software Development:
The terminal in Linux is a *wild card*. You can do almost anything with it. This includes software installation, application and server configurations, file system management, and etc.
 
Large-scale:
Open-source projects benefit from having an attentive community. As a result, Linux is more secure than Windows. Instead of installing anti viruses to clean malware, you just have to stick to the recommended repositories. 
 
Efficient: 
Developers have the convenience of running servers, training machine learning models, accessing remote machines, and compiling and running scripts from the same terminal window. 
 
Free: 
Linux is free (you can put it on as many systems as you like) and you can change it to suit your needs.
Cons
Learning Curve: 
Linux is not for everyone, there is a learning curve in switching to Ubuntu. To actually learn Linux efficiently would take a user one to several years.
 
No Tech Support:
Unlike Windows, there isn’t a dedicated tech support, so getting help for things is up to you. 
 
Designer Compatabilty:
Linux is not as user friendly as Windows or as ‘straight out of the box design’ As an example for design choices, Adobe hasn’t released any of its products to Linux users. So it’s impossible to run them directly. The Ubuntu alternative is a free software called GIMP. 
 
Gaming Capabilities: 
Most games aren’t available in Linux. But that’s not to say you can’t make it happen, it's just not as easy.   
Linux Unix Job Market
Average Salary
$85k-$105k
Job Count
n/a
Top Job Locations

New York City
Boston
San Francisco 

Complimentary Skills to have along with Linux Unix
The following are types of jobs that may require Linux skills.  The top 15 job titles on Dice.com that mention Linux in their postings are:
- DevOps Engineer
- Software Engineer
- Java Developer
- Systems Engineer
- Systems Administrator
- Senior Software Engineer
- Network Engineer
- Python Developer
- Linux Systems Administrator
- Software Developer
- System Administrator
- Linux Administrator
- Linux Engineer
- Senior Java Developer
- C++ Developer

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.