🚀 From Commands to Confidence: My Week with Linux Scripting

Hello Peeps!

It’s been a great week of learning — and more importantly, using what I’ve learned. Like I said earlier, I’ve been feeding my brain a ton lately, and it finally feels like I’m flexing those muscles the right way. These mini projects have been a game-changer in making things concrete in my head.

So, I started working on putting my so-called Linux mastery to use…
Let me correct myself — I thought I had mastery. 😅

But the moment I started building something real, I realized:

“Oof, I’ve got work to do.”

And honestly, I needed that reality check. These projects are what give me the right to say,
“Yeah, I know a few things about Linux.”

I’m not a master yet — keyword: yet — but I’ll get there. Slowly. Surely.
I made myself a promise, and I’m keeping it.
(Sorry for the motivational rant — just hyping myself up here 😄)


🛠️ Project 1: Auto-Provision Me (Shell Scripting)

I started working on a shell scripting project I call Auto-Provision Me, where I built a Bash script to set up a DevOps-ready Linux environment from scratch — safely and repeatably.

🔧 Features:

  • Package Management (apt install, remove, purge, autoremove)

  • 🔐 Firewall Setup using ufw with SSH-only default rules

  • 👤 User & Group Creation with validation

  • 📦 Restrict Tools to Groups (e.g. podman → devops)

  • 🧪 Dry Run Mode for safe testing before execution

  • 📜 Logging with timestamps to ~/provisioner/install.log

  • 📚 DevOps Tool Installer with interactive CLI menu

👉 Check it out:
🔗 Auto-Provision Me on GitHub


😵‍💫 Challenge of the Week: Users, Groups & The Podman Mystery

One thing I wasn’t too comfortable with — and honestly, kind of scared of — was dealing with users and groups.
Creating users, setting up groups, assigning permissions... it all felt like a permissions mess waiting to explode. 🧨

But once I got over that wall of fear?
It wasn’t nearly as bad as I imagined.

Actually... I kinda enjoyed it.
Yep — me, having fun playing system admin. 😎
It felt good to flex control and make the system obey. Like I was the boss of my own mini server universe.


👻 Then came the Podman Ghost Hunt…

So I’m cruising along, feeling good. I write a clean, reusable function to install packages using apt.

First test? Let’s try installing Podman.

💥 Boom. Right in my face.

E: Package 'podman' has no installation candidate

Wait, what!? 😳
“What do you mean you don’t have Podman? This is Ubuntu 24.04!”

Naturally, I dove headfirst into the rabbit hole 🕳️🐇.

I discovered:

  • The package likely wasn’t present in the system’s default APT registry

  • I needed to add an external registry manually

  • Learned all about GPG key authentication 🛡️

  • Understood how Linux verifies trust using signed packages

  • Even found where those keys live (/etc/apt/keyrings) 🔑

At this point, I was geeked out, ready to go full wizard 🧙‍♂️.
I told myself:

“Let me just try one last time... sudo apt install -y podman

And guess what?

🎉 IT. JUST. WORKED.

No fix. No registry. No GPG key.

Just installed.

I was like:

“Bro... the universe just trolled me.” 😭

At that moment, I swear all the stars aligned.
Should’ve bought a lottery ticket. 😂

I still don’t know what changed. Maybe the cache updated. Maybe the package gods blessed me.
But I don’t care — because that deep dive taught me a TON.
Sometimes, the bug disappears, but the lessons stay.


📈 Project 2: Monitor Health

Next up was a fun one — building a Bash-based system health monitor. This script gives me insights into how my system is doing and can even run on a schedule using cron.

🧰 Features:

  • 📊 Full System Health Checks (Disk, Memory, CPU, Users, Services)

  • 🚨 Alerting when thresholds are breached (Disk > 80%, Memory < 20%, CPU Overload)

  • 📃 Summary Report

  • 🔁 Cron-based Daemon Mode

  • 🧹 Log Management with Timestamped Logging

  • 🆘 Built-in Help Menu

  • 🪵 Clean Logging Format with [INFO] and [ERROR] tags

👉 Check it out:
🔗 Monitor Health on GitHub


💭 Final Thoughts

With these two mini projects in the bag, I’m feeling so much more confident than I did last week.
Projects like this give me perspective — it’s one thing to learn theory, but implementing it teaches you 10x more.

That doesn’t mean we skip the theory — without it, I wouldn’t know where to start or what to build. But this has been a solid exercise in turning theory into real-world execution.

If you’ve done similar projects (or are working on something cool), share them with me! I’d love to check them out, learn from them, and stay motivated.


🧠 What’s Next? Time to GIT Going!

Next up, it’s time to GIT going — literally. 😄
I’ve used Git before, but now I want to dive deeper into the fundamentals and advanced usage — rebasing, hooks, cherry-picking, all that fun stuff.

Because let’s be honest, when you think you know Git...
Git hits back. 😅

But I’m here for it.

Thanks for tagging along, and if you checked out the projects — thank you.
If you left a ⭐ or dropped a comment — you're the real MVP.


Stay sharp. Stay curious.
And remember — even when the package “has no installation candidate”...
👉 You’ve got this.


0
Subscribe to my newsletter

Read articles from Sandesh B Nataraj directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sandesh B Nataraj
Sandesh B Nataraj