🚀 Week 2 of My DevOps & AWS Journey: From Linux Basics to Git Branching
Hey everyone!
So here I am, wrapping up Week 2 of my DevOps + AWS learning journey, and let me tell you — it just keeps getting better! This week was packed with hands-on stuff like Linux commands, Git, GitHub, and some deep dives into AWS networking and EC2 tricks. I feel like I’m slowly becoming more confident using the terminal, understanding cloud setups, and even playing with version control like a real developer. 😄
Let me take you through what I did, one day at a time.
🧠 Day 6: Discovering Linux — The Heart of DevOps
I finally started learning Linux, and I have to say… it’s super cool.
Linux is a free, open-source operating system that controls hardware and runs programs — just like Windows, but much more flexible and powerful (especially for techies). It’s used in servers, Android phones, hacking, and most importantly — DevOps!
Here’s what I liked about it:
- It’s secure, free, and customizable.
- You control everything with the command line.
- It makes you feel like a real developer 😄
I learned some basic commands like:
- mkdir to create folders
- ls or ll to list files
- touch to create empty files
- vi, nano, vim — all Linux text editors
- cat, pwd, cd, rm, cp, and mv for file management
Also learned to switch users using sudo -i and clear the screen with clear or Ctrl + L.
Then I jumped into AWS networking and IP address types:
- Public IP — used for internet access (e.g., SSH)
- Private IP — used inside AWS networks
- Elastic IP — fixed public IP that stays even if the instance restarts
I also found out public IPs change when an instance is stopped and started — unless you use Elastic IPs!
🔐 Day 7: Permissions, Users, and Groups in Linux + EC2 Placement Groups
Today was about file permissions in Linux. This part was a bit tricky, but interesting!
I learned how to use chmod to change who can read, write, or execute files:
- r = read (4), w = write (2), x = execute (1)
- So chmod 755 means: owner has full rights, others have read+execute only.
Then came chown to change file ownership, useradd to create new users, and groupadd to create groups. I also learned how to check user info in /etc/passwd and add users to groups with usermod -aG.
In AWS, I explored EC2 Placement Groups — a way to place instances in certain patterns:
- Cluster: for low-latency and high performance (but riskier).
- Spread: across multiple hardware for better fault tolerance.
- Partition: for big distributed systems like Hadoop or Kafka.
Also met ENIs (Elastic Network Interfaces) — they’re like network cards for EC2. You can move them between instances and they support multiple IPs and security groups.
🧪 Day 8: Linux Filters + Hibernation in AWS
Today was full of Linux filters — basically small commands that help you work with files better.
Some cool ones:
- cat = shows file contents
- head = shows first few lines
- tail = shows last few lines
- sort, uniq, grep, wc, and even tac (reverse cat!)
- sed = used for find & replace (like editing a file in one command)
- awk = used to print specific columns or lines in a file. Super handy!
Example:
Get AKULA ASHISH KUMAR’s stories in your inbox
Join Medium for free to get updates from this writer.
bash
CopyEdit
awk ‘NR==4,NR==6 {print NR,$0}’ filename.txt
In AWS, I explored hibernation — yes, EC2 instances can “sleep” now! 💤
It saves the instance’s RAM state to the EBS volume, so when you wake it up, it continues from where you left off — super useful for fast restarts.
The key thing is: the root volume must be encrypted, and you need enough space to store the memory dump.
🌱 Day 9: Git & GitHub — Version Control Magic
This was a big day for me — I started using Git and GitHub!
Git is a version control system that tracks all the changes you make in a project. You can go back to old versions, work on new features without breaking anything, and collaborate with others.
GitHub is like the online home for your Git projects. You can push code there, collaborate with teams, and track changes visually.
Basic commands I practiced:
- git init, git clone, git status, git diff, git add, git commit
- git log, git push, git pull, git branch, git checkout, git merge
I also learned about:
- Versioning (every change = commit)
- Branches (to test new features)
- Pull Requests (for collaboration)
- And the difference between centralized vs distributed version control
It was a bit much, but once I pushed my code to GitHub — I felt like a pro 😄
🔀 Day 10: Real-World Git Branching Strategy
Wrapping up the week with branching strategies used in real-world software teams.
Three main types:
- Git Flow
- Uses main, develop, and separate branches for feature/, release/, hotfix/.
- Good for big teams with long-term planning.
- GitHub Flow
- Simple. Everything happens off the main branch.
- Short branches + Pull Requests + CI/CD.
- Trunk-Based Development
- One main branch. Frequent commits.
- Uses feature flags instead of long branches.
Best practices I learned:
- Use names like feature/login, bugfix/crash, hotfix/security
- Keep branches short and clean.
- Use Pull Requests for review and testing.
- Merge hotfixes into both main and develop.
✅ Week 2 Done — Feeling Stronger and Clearer!
This week made me feel more confident, especially using the terminal and managing files like a real DevOps engineer. I’m getting comfortable with Linux, loving Git, and slowly understanding the AWS world more deeply.
Next week I’ll be moving into shell scripting, IAM roles, and maybe even Terraform. Let’s see where this learning path takes me!
If you’re following along — keep going. It’s okay to feel overwhelmed sometimes, but it all starts making sense with a bit of daily effort.







