Month 1 — Foundations

Linux • Git • Shell Scripting • DevOps Basics

🔧 Linux Environment & Setup

Before learning Linux and DevOps, you need a stable environment. You can use:

  • Ubuntu (Recommended for Beginners)
  • Kali Linux (Security / Pen-testing only)
  • Full Linux Installed
  • WSL — Windows Subsystem for Linux

1. Ubuntu

The best OS for DevOps learners. Stable, lightweight, beginner-friendly.

Download Ubuntu

2. Kali Linux

Designed for cybersecurity and hacking tools. Not recommended for DevOps.

Download Kali Linux

3. Linux (General)

Linux refers to the kernel, and distributions like Ubuntu, Fedora, CentOS are built on top of it.

4. WSL (Windows Subsystem for Linux)

If you use Windows, WSL allows you to run Linux terminal directly.

Install WSL (Windows):


wsl --install
wsl --set-default-version 2
    

Which should you choose?

OS Best For Pros Cons
Ubuntu DevOps, Cloud, Development Stable, simple, lightweight None major
Kali Linux Cybersecurity Built-in hacking tools Not stable for DevOps
WSL Windows users No dual boot, easy setup Not full Linux

References

1. DevOps Principles

DevOps is a culture + practices that improve collaboration between Dev & Ops teams.

Core Principles

  • Continuous Integration
  • Continuous Delivery/Deployment
  • Automation
  • Monitoring & Feedback
  • Collaboration

SDLC (Software Development Life Cycle)

The process used to develop software:

  • Requirement Analysis
  • Design
  • Development
  • Testing
  • Deployment
  • Maintenance

Agile & Scrum

Agile breaks software into small deliverables. Scrum uses sprints (1–2 weeks).

References

2. Linux Fundamentals

Linux is the backbone of DevOps. You must understand commands, users, permissions, and SSH.

Basic Commands


ls      → list files
pwd     → print working directory
cd      → change directory
touch   → create file
mkdir   → create folder
rm -rf  → remove files/folders
    

Users & Permissions


sudo adduser username
chmod 755 file.sh
chown user:user file
    

SSH (Secure Shell)


ssh username@server-ip
ssh -i key.pem ubuntu@server-ip
    

References

3. Git & GitHub

Git tracks changes, GitHub stores repositories remotely.

Essential Commands


git init
git add .
git commit -m "first commit"
git push origin main
    

Branching


git branch feature/login
git checkout feature/login
    

Merge & Pull Request


git merge feature/login
    

References

4. Shell Scripting & Automation

Shell scripting is used to automate tasks in Linux.

Example Script


#!/bin/bash
echo "Backup Started"
cp -r /home/user/data /home/user/backup
echo "Backup Completed"
    

Cron Jobs

Schedule tasks:


crontab -e
0 2 * * * /home/user/backup.sh   → runs daily at 2AM
    

References