Linux Shell Scripting: A Project-Based Approach to Learning

Video description

Have you tried to learn shell scripting on your own, but lack the structure you need to really improve your skills? Are you tired of picking up bits and pieces of information that you can’t just seem to put together? Do you learn best by doing? If so, you are going to love this course.

A shell script is a computer program designed to be run by the Unix shell, a command-line interpreter. One of the biggest complaints from students is that most of the courses they have taken in the past simply provide information without any context and without any idea of how to put that information to use. This course turns that old, frustrating, and outdated way of learning on its head. It is project-based, which means that instead of learning bits and pieces of information, you will write actual shell scripts that you can use in real-world situations. You get the chance to immediately put what you learn to use so that you fully understand and remember it.

By the end of this course, you will be able to write shell scripts that will allow you to work with Linux effectively.

What You Will Learn

  • Learn about using the proper permissions on your shell scripts
  • Learn to create and use variables in your scripts
  • Learn to use shell built-in commands and operating system commands
  • Learn to write scripts that execute commands on other systems
  • Learn to use command pipelining
  • Learn how to control all types of input and output


This course is for anyone who wants to master Linux shell scripting, bash scripting, and the bash shell. This can also be taken by any Linux system administrators, developers, or programmers.

About The Author

Jason Cannon: Jason Cannon is a professional system administrator, consultant, and author. He started his career as a Unix and Linux System engineer in 1999. Since that time, he has utilized his Linux skills at companies such as Xerox, UPS, Hewlett-Packard, and Additionally, he has acted as a technical consultant and independent contractor for small businesses and Fortune 500 companies.

Jason has professional experience with CentOS, RedHat Enterprise Linux, SUSE Linux Enterprise Server, and Ubuntu. He has used several Linux distributions on personal projects including Debian, Slackware, CrunchBang, and others. In addition to Linux, Jason has experience supporting proprietary Unix operating systems including AIX, HP-UX, and Solaris. He enjoys teaching others how to use and exploit the power of the Linux operating system.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Course Introduction
    1. Introduction and Course Overview
    2. Course Downloads
  2. Chapter 2 : Creating a Local Linux Shell Scripting Environment
    1. Creating a Local Lab Environment Using Vagrant and VirtualBox - Background
    2. Exercise 1 – Walkthrough – Part I – Windows Users Only
    3. Exercise 1 – Walkthrough – Part I – Mac Users Only
    4. Exercise 1 – Walkthrough – Part I – Linux (CentOS/RHEL) Users Only
    5. Exercise 1 – Walkthrough – Part II – All Users
    6. Vagrant and VirtualBox Troubleshooting Tips
  3. Chapter 3 : User and Account Creation - Shell Scripting Project 1
    1. Section Introduction
    2. Getting Started with Shell Scripting: Naming, Permissions, Variables, Built-Ins
    3. Special Variables, Pseudocode, Command Substitution, if Statement, Conditionals
    4. Exit Statuses, Return Codes, String Test Conditionals, More Special Variables
    5. Reading Standard Input, Creating Accounts, Username Conventions, More Quoting
    6. Exercise 2 - Walkthrough
  4. Chapter 4 : Password Generation and Shell Script Argument – Shell Scripting Project 2
    1. Random Data, Cryptographic Hash Functions, Text and String Manipulation.
    2. Positional Parameters, Arguments, For Loops, Special Parameters
    3. The While Loop, Infinite Loops, Shifting, and Sleeping
    4. Exercise 3 - Walkthrough
  5. Chapter 5 : Linux Programming Conventions – Shell Scripting Project 3
    1. Advanced Standard Input, Standard Output, and Standard Error - Part I
    2. Advanced Standard Input, Standard Output, and Standard Error - Part II
    3. Exercise 4 - Walkthrough
  6. Chapter 6 : Parsing Command-Line Options – Shell Scripting Project 4
    1. Case Statements
    2. Functions
    3. Parsing Command-Line Options with getopts, Part 1
    4. Parsing Command-Line Options with getopts, Part 2
    5. Deleting and Disabling Linux Accounts, Part 1 of 4 (Finding Files)
    6. Deleting and Disabling Linux Accounts, Part 2 of 4 (the userdel Command)
    7. Deleting and Disabling Linux Accounts, Part 3 of 4 (Archives with tar)
    8. Deleting and Disabling Linux Accounts, Part 4 of 4 (Disabling Accounts)
    9. Deleting Users – Exercise 5 – Walkthrough
  7. Chapter 7 : Transforming Data / Data Processing / Reporting – Shell Scripting Project 5
    1. Cut and Awk
    2. Cut and Awk Demonstration Script: Open Network Ports
    3. Sort and Uniq
    4. Parsing Log Files - Exercise 6 - Walkthrough
    5. Sed
  8. Chapter 8 : Network Scripting and Automation of Distributed Systems: Shell Scripting Project 6
    1. Configuring a Mini Network and Scripting for Remote Systems
    2. Scripting Remote Commands – Walkthrough – Part 1
    3. Scripting Remote Commands – Walkthrough – Part 2
  9. Chapter 9 : Course Summary
    1. Summary
  10. Chapter 10 : Course Extras
    1. What Shell Scripting is and Why You Should Learn It

Product information

  • Title: Linux Shell Scripting: A Project-Based Approach to Learning
  • Author(s): Jason Cannon
  • Release date: October 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781789800906