DEV Community

Cover image for Introduction to Shell Scripting in Linux- DevOps Prerequisite #3
Aaditya Kediyal
Aaditya Kediyal

Posted on

Introduction to Shell Scripting in Linux- DevOps Prerequisite #3

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!"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

You can then run the script using:

./your_script.sh
Enter fullscreen mode Exit fullscreen mode

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!"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

And an example of a while loop:

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

Functions

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

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

greet "Alice"
greet "Bob"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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!

Top comments (0)