Shell Scripting Basics for Beginners (Step-by-Step)

Introduction

Shell scripting is one of the most powerful and time-tested skills in the world of computing. Before modern automation tools became popular, system administrators and developers relied heavily on shell scripts to automate repetitive tasks, manage servers, and streamline workflows. Even today, shell scripting remains a foundational skill for anyone working with Linux, Unix, or DevOps environments.

If you are a beginner, this guide will walk you step-by-step through the essentials of shell scripting—starting from the very basics to writing your first useful script.


What is Shell Scripting?

A shell script is a text file containing a sequence of commands that the shell (command-line interpreter) executes.

In simple terms:

  • Shell = Interface between user and OS
  • Script = A file with commands

So, a shell script = a file that automates command execution


Why Learn Shell Scripting?

Learning shell scripting brings both immediate and long-term benefits:

Key Advantages:

  • Automate repetitive tasks
  • Save time and effort
  • Manage servers efficiently
  • Perform batch processing
  • Improve productivity in Linux environments

Real-Life Examples:

  • Backup files automatically
  • Monitor system performance
  • Deploy applications
  • Process large datasets

Types of Shells

Before scripting, it’s important to know the common shell types:

  • Bash (Bourne Again Shell) – Most widely used
  • Sh (Bourne Shell) – Original Unix shell
  • Zsh – Advanced features and customization
  • Ksh (Korn Shell) – Used in enterprise systems

👉 For beginners, Bash is the best starting point.


Step 1: Setting Up Your Environment

Most Linux systems already have Bash installed.

Check Bash Version:

bash --version

Create a Script File:

nano script.sh

Step 2: Writing Your First Shell Script

Every shell script starts with a shebang line:

#!/bin/bash

Example: Hello World Script

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

Save and Exit


Step 3: Make Script Executable

Before running, give execution permission:

chmod +x script.sh

Step 4: Run the Script

./script.sh

Output:

Hello, World!

Understanding Basic Commands

Common Commands:

  • echo → Print output
  • pwd → Show current directory
  • ls → List files
  • date → Show date
  • whoami → Current user

Example:

#!/bin/bash
echo "User: $(whoami)"
echo "Date: $(date)"

Variables in Shell Script

Variables store values.

Syntax:

name="Shiva"
echo "Hello $name"

Important Rules:

  • No space around =
  • Use $ to access value

User Input

You can take input from users:

#!/bin/bash
echo "Enter your name:"
read name
echo "Welcome, $name"

Conditional Statements (if-else)

Used for decision making.

Syntax:

if [ condition ]
then
   commands
fi

Example:

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

if [ $num -gt 10 ]
then
    echo "Number is greater than 10"
else
    echo "Number is 10 or less"
fi

Loops in Shell Script

Loops help repeat tasks.

1. For Loop

#!/bin/bash
for i in 1 2 3 4 5
do
    echo "Number: $i"
done

2. While Loop

#!/bin/bash
count=1

while [ $count -le 5 ]
do
    echo "Count: $count"
    count=$((count+1))
done

Functions in Shell Script

Functions improve code organization.

Example:

#!/bin/bash

greet() {
    echo "Hello, $1"
}

greet Shiva

Working with Files

Create File:

touch file.txt

Check if File Exists:

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

Command-Line Arguments

Scripts can accept arguments.

Example:

#!/bin/bash
echo "First argument: $1"
echo "Second argument: $2"

Run:

./script.sh Hello World

Useful Operators

Numeric Operators:

  • -eq → equal
  • -ne → not equal
  • -gt → greater than
  • -lt → less than

String Operators:

  • = → equal
  • != → not equal
  • -z → empty string

Best Practices for Beginners

  • Keep scripts simple and readable
  • Use meaningful variable names
  • Add comments using #
  • Test scripts step-by-step
  • Avoid running scripts as root unnecessarily

Common Mistakes to Avoid

  • Missing shebang (#!/bin/bash)
  • Not giving execute permission
  • Spaces around =
  • Incorrect syntax in conditions

Practical Mini Project

Backup Script Example:

#!/bin/bash

SOURCE="/home/user/data"
DEST="/home/user/backup"

echo "Starting backup..."

cp -r $SOURCE $DEST

echo "Backup completed successfully!"

FAQs

1. Is shell scripting hard for beginners?

No. With consistent practice, it becomes easy. Start with simple scripts and build gradually.

2. Do I need programming knowledge?

Basic logic helps, but you can learn shell scripting from scratch.

3. Where is shell scripting used?

  • System administration
  • DevOps
  • Automation tasks
  • Data processing

4. Which shell should I learn first?

Start with Bash, as it is widely used and beginner-friendly.

5. Can shell scripts replace Python?

Not completely. Shell scripting is best for system tasks, while Python is better for complex applications.


Conclusion

Shell scripting is a timeless skill that connects you directly with the core of your operating system. While modern tools and graphical interfaces have their place, mastering shell scripting gives you precision, speed, and control that few other tools can offer.

Begin with simple scripts, practice daily, and gradually take on real-world tasks like automation and system monitoring. Over time, what seems complex today will become second nature.

A steady and disciplined approach—just like traditional learning methods—will ensure lasting mastery. Stay consistent, keep experimenting, and you will build a powerful skill that serves you for years to come.

Also Read: Linux Permissions

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top