Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Learn Linux Shell Scripting – Fundamentals of Bash 4.4

You're reading from   Learn Linux Shell Scripting ‚àö¬¢‚Äö√ᬮ‚Äö√Ñ√∫ Fundamentals of Bash 4.4 A comprehensive guide to automating administrative tasks with the Bash shell

Arrow left icon
Product type Paperback
Published in Dec 2018
Publisher Packt
ISBN-13 9781788995597
Length 452 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Sebastiaan Tammer Sebastiaan Tammer
Author Profile Icon Sebastiaan Tammer
Sebastiaan Tammer
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Introduction 2. Setting Up Your Local Environment FREE CHAPTER 3. Choosing the Right Tools 4. The Linux Filesystem 5. Understanding the Linux Permissions Scheme 6. File Manipulation 7. Hello World! 8. Variables and User Input 9. Error Checking and Handling 10. Regular Expressions 11. Conditional Testing and Scripting Loops 12. Using Pipes and Redirection in Scripts 13. Functions 14. Scheduling and Logging 15. Parsing Bash Script Arguments with getopts 16. Bash Parameter Substitution and Expansion 17. Tips and Tricks with Cheat Sheet 18. Assessments 19. Other Books You May Enjoy

What is Bash?

The most commonly used shell in Linux systems is the Bourne-again shell, or Bash. The Bash shell is based on the Bourne shell, known as sh. But what is a shell?

A shell is, in essence, a user interface. Most often, it is used to refer to a text-based interface, also called a command-line interface (CLI). However, it is called a shell because it can be seen as a shell around the kernel; this means that it applies not just to CLIs, but just as well to graphical user interfaces (GUIs). When we refer to a shell in this book, we are talking about a CLI, and unless stating differently, we're talking about the Bash shell.

The purpose of a shell, both CLI and GUI, is to allow the user to interact with the system. After all, a system that does not offer interaction would be hard to justify, not too mention hard to use! Interaction in this context means many things: typing on your keyboard will make letters appear on your screen, moving your mouse will change the location of the cursor on screen, giving the command to delete a file (either with a CLI or GUI) will remove the bytes from the disk, and so on.

In the earliest days of Unix and computers, no GUIs were available, so all work was performed via a CLI. To connect to the shell on a running machine, a video terminal was used: often this would be a very simple monitor combined with a keyboard, which was connected with, for example, a RS-232 serial cable. Commands entered on this video terminal were processed by the shell running on the Unix machine.

Luckily for us, things have changed quite a bit since the first computers. Today, we no longer use dedicated hardware to connect to shells. A piece of software running in a GUI, a terminal emulator, is used for interaction with the shell. Lets take a quick look at how connecting to a Bash shell with a terminal emulator can look:

In the preceding screenshot, we're connected to a Linux virtual machine (we'll be setting this up in the next chapter), using a terminal emulator (GNOME Terminal) via the Secure Shell (SSH) protocol. A few interesting things to note:

  • We're on a CLI interface; we do not have access to, nor do we need, a mouse
  • We're connected to an Ubuntu machine, but we're running this within another operating system (Arch Linux, in this case)
  • We're presented with a welcome message by Ubuntu 18.04, showing some general information about the system

Besides using the Bash shell for direct system interaction, it provides another important functionality: the ability to execute multiple commands sequentially, with or without user interaction, tailored to a specific goal. This might sound complicated, but it's actually pretty simple: we're talking about Bash scripts, the subject of this book!

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image