🚀 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.
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
