Getting Started with Shell Scripting: Automate Like a Pro (Even as a Beginner!)

Author

Kritim Yantra

May 04, 2025

Getting Started with Shell Scripting: Automate Like a Pro (Even as a Beginner!)

Imagine waking up every morning, opening your laptop, and manually doing the same boring tasks:

  • Checking disk usage
  • Cleaning up log files
  • Backing up important folders
  • Running updates

Now, what if I told you that your computer could do all this for you β€” automatically?

Welcome to the magical world of shell scripting.


🧠 What is Shell Scripting?

A shell script is a file that contains a series of commands β€” just like the ones you type in your terminal. The shell reads this file line-by-line and executes the commands in order.

It’s like giving your computer a to-do list, and it follows it exactly.


πŸ–₯️ What You Need to Get Started

  • A Linux or macOS machine (or WSL if you're on Windows)
  • A terminal
  • A text editor (nano, vim, or even VS Code)

No fancy setup. No installations. Just your OS and some curiosity.


πŸ“„ Your First Shell Script

Let’s make your computer greet you like a movie AI assistant:

#!/bin/bash

echo "Good morning, $(whoami)!"
echo "Today is $(date +%A), the time is $(date +%r)."
echo "Here’s your system uptime: "
uptime

Save this as morning.sh, then run:

chmod +x morning.sh
./morning.sh

πŸŽ‰ Boom! You’ve written your first shell script.


βš™οΈ Real-Life Use Case #1: Disk Cleanup Script

Too many junk files? Automate cleanup!

#!/bin/bash

echo "Cleaning /tmp directory..."
rm -rf /tmp/*
echo "Done!"

Add it to a cron job, and your PC will clean itself every day.


πŸ” Use Case #2: Daily Backup Script

Let’s back up your important folder:

#!/bin/bash

source="/home/yourname/projects"
destination="/home/yourname/backups"
date=$(date +%F)

filename="backup-$date.tar.gz"
tar -czf $destination/$filename $source

echo "Backup completed: $filename"

Run this every evening and never worry about losing code.


πŸ”Ž Understanding Core Concepts

1. Variables

name="Alice"
echo "Hello, $name"

2. Conditions

if [ -f myfile.txt ]; then
  echo "File exists"
else
  echo "File not found"
fi

3. Loops

for file in *.log
do
  echo "Found log file: $file"
done

4. Functions

greet() {
  echo "Hi $1, welcome!"
}

greet "Bob"

πŸ’» Automate Everything: More Examples

Check Internet Connection

#!/bin/bash

ping -c 1 google.com &> /dev/null

if [ $? -eq 0 ]; then
  echo "Internet is up!"
else
  echo "Internet is down!"
fi

System Resource Monitor

#!/bin/bash

echo "CPU Load:"
top -bn1 | grep "load average"

echo "Memory Usage:"
free -h

Rename All .txt Files to .bak

#!/bin/bash

for file in *.txt
do
  mv "$file" "${file%.txt}.bak"
done

πŸ›‘ Safety Tips for Beginners

  • Always test your script before running it with sudo
  • Use echo before a destructive command like rm to preview
  • Backup your script files before editing

πŸ’¬ Why Developers Love Shell Scripts

βœ… Saves time
βœ… Automates boring tasks
βœ… Works on almost every Unix/Linux machine
βœ… Helps in CI/CD, DevOps, and system admin roles
βœ… Makes you feel like a tech wizard πŸ§™


🧭 Where to Go From Here

Now that you know the basics, try these:

  • Create a script that checks if a website is live
  • Write a script to update your system and clean old packages
  • Schedule your scripts with cron
  • Explore bash scripting tutorials and challenges

🎁 Bonus: Schedule Your Script with Cron

Open crontab:

crontab -e

Add this line to run a backup every day at 10 PM:

0 22 * * * /home/yourname/backup.sh

Your script will now run automatically at that time. How cool is that?


πŸ”š Conclusion

Shell scripting is like giving your computer a mini-program β€” it listens and does exactly what you say. You don’t need to be a Linux expert to get started. Start small, play around, break things (and fix them), and soon, you'll be automating like a DevOps engineer.

So go ahead β€” write your first script today, and let the automation begin.

Comments

No comments yet. Be the first to comment!

Please log in to post a comment:

Sign in with Google

Related Posts