Introduction to Shell Scripting in Linux- DevOps Prerequisite #3

Shell scripting is a powerful way to automate repetitive tasks and manage system operations in Linux. A shell script is a file containing a series of commands that are executed by the shell, the command-line interpreter in Linux. This blog will introduce you to the basics of shell scripting, provide examples of common tasks, and explain key concepts to get you started.

Introduction to Shell Scripting in Linux

Shell scripting is a powerful way to automate repetitive tasks and manage system operations in Linux. A shell script is a file containing a series of commands that are executed by the shell, the command-line interpreter in Linux. This blog will introduce you to the basics of shell scripting, provide examples of common tasks, and explain key concepts to get you started.

Why Shell Scripting?

Shell scripting offers numerous benefits:

  1. Automation: Automate repetitive tasks to save time and reduce errors.

  2. Efficiency: Perform complex operations with simple scripts.

  3. System Administration: Manage system operations like backups, monitoring, and updates.

  4. Custom Solutions: Create tailored solutions for specific needs.

Getting Started

Creating Your First Script

To create a shell script, open a text editor and type your commands. Save the file with a .sh extension. Here's a simple example:

#!/bin/bash
echo "Hello, World!"

The #!/bin/bash line is called a shebang, which tells the system to use the Bash shell to execute the script.

Making the Script Executable

Before running your script, you need to make it executable:

chmod +x your_script.sh

You can then run the script using:

./your_script.sh

Basic Concepts

Variables

Variables store data that can be used later in the script. Assigning a value to a variable is simple:

#!/bin/bash
name="John"
echo "Hello, $name!"

Conditional Statements

Conditionals allow you to execute commands based on certain conditions:

#!/bin/bash
echo "Enter a number:"
read number

if [ $number -gt 10 ]; then
    echo "The number is greater than 10."
else
    echo "The number is 10 or less."
fi

Loops

Loops are used to repeat commands. Here's an example of a for loop:

#!/bin/bash
for i in {1..5}; do
    echo "Iteration $i"
done

And an example of a while loop:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Functions

Functions help you organize your script into reusable chunks of code:

#!/bin/bash
greet() {
    echo "Hello, $1!"
}

greet "Alice"
greet "Bob"

Real-World Examples

Backup Script

A simple script to back up a directory:

#!/bin/bash
source_dir="/path/to/source"
backup_dir="/path/to/backup"
timestamp=$(date +%Y%m%d%H%M%S)
backup_file="backup_$timestamp.tar.gz"

tar -czf $backup_dir/$backup_file $source_dir
echo "Backup of $source_dir completed. File: $backup_file"

System Monitoring Script

A script to monitor disk usage and send an alert if usage exceeds a threshold:

#!/bin/bash
threshold=80
usage=$(df / | grep / | awk '{print $5}' | sed 's/%//')

if [ $usage -gt $threshold ]; then
    echo "Disk usage is above $threshold%. Current usage: $usage%" | mail -s "Disk Usage Alert" user@example.com
fi

Conclusion

Shell scripting is a versatile tool that can greatly enhance your productivity as a Linux user or administrator. By mastering the basics of variables, conditionals, loops, and functions, you can automate a wide range of tasks and streamline your workflow. Start experimenting with your own scripts and explore the vast capabilities that shell scripting offers.

Happy scripting!