Advanced Shell Programming for Beginners (and Experts)

By Robert C. Lemley

Elevator Pitch

No “Hello, world!” or “What is your name?” examples here.

Learn to program the shell and supercharge your productivity in Cloud Computing, DevOps, System Administration, or Software Development. Gain knowledge and techniques for useful, efficient, and portable shell programs.

Description

Knowledge of Shell commands and programming is now more relevant than ever given recent developments such as:

  • The growth of Cloud Computing: AWS, Azure, Google Cloud, OpenStack
  • The Azure Cloud Shell
  • Google Cloud Shell
  • The popularity of containers such as Docker
  • The rise of Virtual Machines
  • WSL – Windows Subsystem for Linux

Expand your expertise and productivity with one of the most popular and ubiquitous user interface and programming languages ever invented. Automate your workflows to increase your efficiency and break dependencies on GUIs for tasks in DevOps, System Administration, and Software Development.

We’ll review all of the major shells, including Bourne Shell (sh), Bash Shell (bash), Z Shell (zsh), KornShell (ksh), Almquist Shell (ash or sh), C Shell (csh) and TC Shell (tcsh). We’ll focus on features of the Bourne Shell syntax, which is the most common for scripting and is implemented by sh, Bash, Zsh, Ksh and Ash.

We’ll cut through the supposedly cryptic syntax and strange command names to expose the underlying simplicity of the Bourne shell language. We’ll get back to the basics and uncover why the Bourne shell has remained the primary user interface and command language for Unix-like operating systems going on 40 years. You’ll learn concepts and technologies common to all operating systems in the Unix lineage and very much in use today.

Topics

  • Foundations of the shell: history and culture
  • Overview, comparison, and recommendations of the modern shell interpreters: bash, zsh, ksh, csh, sh, etc.
  • Shell syntax, usage, and examples.
    • Variables
    • Control Flow
    • IO redirection
    • Pipelines
    • etc
  • Structure and purpose of shell scripts – play with others nicely.
  • Integrating shell programs in your environment – fitting in to the ecosystem.
  • Tips and Tricks.

The Bourne shell is 40 years old this year!

The presenter has been a daily user of most of the major shells (including csh, ksh, bash, and dash) for decades, both for interactive computing and scores of shell programs now used in production every day.

Notes

I have been a daily shell user and programmer since 1984, in addition to my roles as Senior Developer, Technical Lead, and Software Architect on numerous government and commercial projects which have brought in many millions of dollars in revenue.

I have personally used the shell to greatly increase my productivity and automate many tasks, both for my personal use, and for commercial products.

I have sufficient knowledge and background to drill down into any of the topic areas as the audience desires. This is an interactive presentation where interactive audience feedback, questions, and comments are desired to ensure the relevance of presented information.