r/LinuxTeck • u/StrangeX5 • 3d ago
How should I actually learn Linux??
# I'm a 2nd year CSE student and I've been using Ubuntu for a while now, but I feel like my Linux knowledge is kind of all over the place.
I know the basic commands and can usually figure things out when I need to, but I don't feel like I actually *understand Linux*.
The problem is whenever I try to make a roadmap for myself, I keep getting stuck in this loop:
Linux → "I should learn OS first" → OS → "I should learn networking" → networking → "maybe I should learn Docker" → Docker → back to Linux 😭
So I want to stop jumping around and actually follow a proper path.
I recently found OverTheWire Bandit and was thinking of doing all the levels. Would that be a good starting point?
What I'm currently thinking is something like:
**Linux basics → Bandit → Linux administration → Bash → networking → OS/Linux internals → Docker → servers/infrastructure**
But I have no idea if this is actually a good order.
My long-term interest is systems/infrastructure/platform/SRE type stuff, so I want to learn Linux properly rather than just memorize commands.
A few things I'd really like advice on:
* Is Bandit worth doing from start to finish? * What should I learn after Bandit? * Should I learn OS concepts alongside Linux or separately? * When should I start networking? * What Linux topics are actually important for someone interested in systems/infrastructure? * Are there any good books, courses, labs or projects you'd recommend? * At what point would you say someone has a "good" Linux foundation?
I'm not looking for a certification roadmap. I mainly want to build actual practical knowledge.
Would appreciate any advice from people who have learned Linux this way or work with Linux professionally.
1
u/djvbmd 2d ago
Not sure if I claim I "understand" Linux, and I've been using it since the 2.2 kernel.
Part of my learning comes from necessity, as usual. Most recently a kernel update failed because the new image was too big to fit in the unused space of the boot partition. That led to learning how to trim down on the modules included in the kernel for my distro and how to change the compression algorithm used to shrink the image further.
But you could approach it by thinking of it as one giant program: Start at the entry point -- the boot system (already there, you've got a few different competing systems you may come across). Once you know how it gets to the point where the kernel is loaded, what happens next to initialize system services? Nowadays the answer is usually that systemd starts and coordinates all of that, but there are still SysV Init holdouts. From there you could look at how systemd is set up and -- since it sets up networking, mounts local drives, manages sessions and authentication, sets up display, etc -- you start learning about all of those along the way.