Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
The Ultimate Linux Shell Scripting Guide
The Ultimate Linux Shell Scripting Guide

The Ultimate Linux Shell Scripting Guide: Automate, Optimize, and Empower tasks with Linux Shell Scripting

eBook
R$80 R$200.99
Paperback
R$250.99
Subscription
Free Trial
Renews at R$50p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

The Ultimate Linux Shell Scripting Guide

Getting Started with the Shell

Before we can talk about shell scripting, we need to know what a shell is and what kinds of shells are available for Linux, Unix, and Unix-like operating systems. We’ll also talk about other important topics that will help get you started in the wide, wonderful world of shell scripting.

Topics in this chapter include:

  • Understanding shells
  • Finding help with shell commands
  • Using a text editor
  • Understanding compiled versus interpreted programming
  • Understanding root and sudo privileges

If you’re ready, let’s get started on this important journey. And, always remember to have some fun along the way.

Understanding Shells

So, you’re scratching your head and saying, “What is a shell, and why should I care?” Well, a shell is a program that acts as an intermediary between the user and the operating system kernel. A user types commands into the shell, which passes them into the kernel for processing. The output is then presented to the user via the computer terminal, which can also referred to as the screen. The most common shell on Linux systems is bash, but the Z shell (zsh) has been gaining popularity in recent years. (I’ll explain why in Chapter 22, Using the Z Shell.) You’ll find bash as the default shell on most Linux distros and certain Unix-like distros such as OpenIndiana, and zsh as the default on Kali Linux.

If you are brand new to the wild, wonderful world of Linux and its Unix or Unix-like cousins, you might be wondering what a distro is. Well, unlike Windows and macOS, which are proprietary and controlled by a single company, Linux and its cousins are primarily open source software, which means that anyone can take the source code and create their own implementations, or distributions. Red Hat Enterprise Linux, Fedora, and Ubuntu are examples of Linux distributions, and OpenIndiana and FreeBSD are examples of Unix-like distributions. But, we hard-core geeks rarely utter the word distribution, and instead just say distro, for short.

Also, the reason that I differentiate between Unix and Unix-like distros has to do with legal reasons that date back to the 1980s. This involves a rather complicated mess that I would rather not go into here. Suffice it to say that the creators of distros such as FreeBSD are not allowed to refer to their creations as Unix, even though they are mostly functionally equivalent. But, they can say that their creations are Unix-like.

The newest versions of macOS also have zsh set as the default shell. Fortunately, much of what you’ll learn about bash also works on zsh. The main difference is that zsh has a few cool features that bash doesn’t have. (Again, I’ll explain all about that in Chapter 22.) PowerShell, which originally was only available for Microsoft Windows operating systems, has also been available for Linux and macOS since 2016. PowerShell is a whole different animal, but you might find it quite useful, as you should see when we get to Chapter 23, Using PowerShell on Linux.

It’s common to hear people refer to bash as the bash shell. But, bash is short for Bourne Again Shell. So, when you say bash shell, you’re really saying Bourne Again Shell Shell, which is a bit awkward. This is the same as when people talk about going to the ATM machine to withdraw some money. What they’re really saying is that they’re going to the Automatic Teller Machine Machine, which is also awkward.

And, don’t even get me started on the people who talk about hot water heaters. I mean, if the water is already hot, why heat it?

On the other hand, if you find that you still need to say bash shell so that people will know what you’re talking about, I’ll understand and won’t condemn you for it. In fact, you might even see me do that on occasion.

The coolest thing about modern operating system shells is that they’re much more than just an interface tool. They’re also full-blown programming environments with many of the same programming constructs as more complex programming languages, such as Pascal, C, or Java. Systems administrators can make their jobs much easier by using shell scripts to automate complex, repetitive tasks.

When you log into a text-mode Linux or Unix server, you’ll be presented with a black screen and some text, which looks like this:

Figure 1.1: Plain bash on a text-mode Debian Linux machine

This is the unadorned, plain-jane shell. Machines with desktop environments installed will interface with the shell via a terminal emulator, which will look something like this:

Figure 1.2: A terminal emulator that interfaces with bash on an OpenIndiana machine

The name of the terminal emulator will differ from one desktop environment to the next, but all do the same job. The advantage of using a terminal emulator is that you’ll have the luxury of using scroll bars, customizing the display, and using copy-and-paste for the command-line.

In any case, you can see which shell you’re using by typing:

donnie@fedora:~$ echo $SHELL
/bin/bash
donnie@fedora:~$

In this case, you see that you’re using bash.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Develop portable scripts using Bash, Zsh, and PowerShell that work seamlessly across Linux, macOS, and Unix systems
  • Progress seamlessly through chapters with clear concepts, practical examples, and hands-on labs for skill development
  • Build real-world Linux administration scripts, enhancing your troubleshooting and management skills

Description

Dive into the world of Linux shell scripting with this hands-on guide. If you’re comfortable using the command line on Unix or Linux but haven’t fully explored Bash, this book is for you. It’s designed for programmers familiar with languages like Python, JavaScript, or PHP who want to make the most of shell scripting. This isn’t just another theory-heavy book—you’ll learn by doing. Each chapter builds on the last, taking you from shell basics to writing practical scripts that solve real-world problems. With nearly a hundred interactive labs, you’ll gain hands-on experience in automation, system administration, and troubleshooting. While Bash is the primary focus, you'll also get a look at Z Shell and PowerShell, expanding your skills and adaptability. From mastering command redirection and pipelines to writing scripts that work across different Unix-like systems, this book equips you for real-world Linux challenges. By the end, you'll be equipped to write efficient shell scripts that streamline your workflow and improve system automation.

Who is this book for?

This book is for programmers who use the command line on Unix and Linux servers already, but don't write primarily in Bash. This book is ideal for programmers who've been using a scripting language such as Python, JavaScript or PHP, and would like to understand and use Bash more effectively. It’s also great for beginning programmers, who want to learn programming concepts.

What you will learn

  • Grasp the concept of shells and explore their diverse types for varied system interactions
  • Master redirection, pipes, and compound commands for efficient shell operations
  • Leverage text stream filters within scripts for dynamic data manipulation
  • Harness functions and build libraries to create modular and reusable shell scripts
  • Explore the basic programming constructs that apply to all programming languages
  • Engineer portable shell scripts, ensuring compatibility across diverse platforms beyond Linux

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 18, 2024
Length: 696 pages
Edition : 1st
Language : English
ISBN-13 : 9781835463154
Vendor :
Linux Foundation
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Oct 18, 2024
Length: 696 pages
Edition : 1st
Language : English
ISBN-13 : 9781835463154
Vendor :
Linux Foundation
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
R$50 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
R$500 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just R$25 each
Feature tick icon Exclusive print discounts
R$800 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just R$25 each
Feature tick icon Exclusive print discounts

Table of Contents

25 Chapters
Getting Started with the Shell Chevron down icon Chevron up icon
Interpreting Commands Chevron down icon Chevron up icon
Understanding Variables and Pipelines Chevron down icon Chevron up icon
Understanding Input/Output Redirection Chevron down icon Chevron up icon
Customizing the Environment Chevron down icon Chevron up icon
Text-Stream Filters – Part 1 Chevron down icon Chevron up icon
Text Stream Filters – Part 2 Chevron down icon Chevron up icon
Basic Shell Script Construction Chevron down icon Chevron up icon
Filtering Text with grep, sed, and Regular Expressions Chevron down icon Chevron up icon
Understanding Functions Chevron down icon Chevron up icon
Performing Mathematical Operations Chevron down icon Chevron up icon
Automating Scripts with here Documents and expect Chevron down icon Chevron up icon
Scripting with ImageMagick Chevron down icon Chevron up icon
Using awk – Part 1 Chevron down icon Chevron up icon
Using awk – Part 2 Chevron down icon Chevron up icon
Creating User Interfaces with yad, dialog, and xdialog Chevron down icon Chevron up icon
Using Shell Script Options with getops Chevron down icon Chevron up icon
Shell Scripting for Security Professionals Chevron down icon Chevron up icon
Shell Script Portability Chevron down icon Chevron up icon
Shell Script Security Chevron down icon Chevron up icon
Debugging Shell Scripts Chevron down icon Chevron up icon
Introduction to Z Shell Scripting Chevron down icon Chevron up icon
Using PowerShell on Linux Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.8
(4 Ratings)
5 star 75%
4 star 25%
3 star 0%
2 star 0%
1 star 0%
A. Zubarev Oct 24, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is probably one of, if not the most, comprehensive of all on the capabilities of scripting on Linux.It covers all the common scripting shells, even PowerShell (who knew it would be possible to run Microsoft's shell on Linux?!), methods of securing scripts, text manipulation, advanced scripting techniques including automation, shell configuration, error handling, piping and much more.I especially liked the chapters on image manipulations and creating user interfaces.Be aware that this book assumes you are scripting for an on-prem resident machine and it is probably the only shortcoming I can mention.
Amazon Verified review Amazon
N/A Jan 30, 2025
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Feefo Verified review Feefo
Byron Gorman Nov 15, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The Ultimate Linux Shell Scripting, is an extremely fascinating read. So let’s get right to the contents of the book. First the book sets you up for success by providing you with examples of code, that you will use with the hands on labs that personally I found to be intriguing. This allows the reader to jump into the thick of Linux from the start. The labs are presented so the reader can have a better understanding of the processes and code automation, the rich contents covers everything from learning the shell and shell emulators to using Powershell on Linux and macOS. This allows the reader the opportunity to explore Linux using several different flavors. Starting with the shell you will learn simple commands that will show you the difference between the regular user and the root user. Then we step into commands and how to leverage them in your favor. By automating some Linux scripts you will be able to customize your environment and do global configurations.The book also allows you to create basic shell scripts, and filter them and the steps you through advanced scripts. This read is full of examples and illustrations that show how the script commands are used and the end result you should be seeing.At the end of each chapter there are review questions to make certain that you have maintained the correct information.If you are new to Linux, attempting to get your certification or are a seasoned Linux user this is one book to add to you’re personal Linux war chest. I added it to mine! Read more
Amazon Verified review Amazon
Emiru Mar 01, 2025
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I am giving 4 stars because i am still on chapter 2 but I love the writer's approach to the subject matter. I have been using Linux now for 10+ years and the teaching style has knowledge for every level.
Subscriber review Packt
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.