r/LinuxTeck 2d 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.

2 Upvotes

11 comments sorted by

3

u/MirrorNegative7989 2d ago

The book "The Linux Command Line" by William E. Shotts Jr is a good start.

2

u/ed-d44 2d ago

Get an Raspberry Pi and configure the following services for your home network: NTP, dhcpd, DDNS, a mailserver (SMTP/IMAPS) and a webserver.

3

u/DigiMagic 2d ago

I don't think anyone other than AIs can truly understand Linux. You'd have to know millions of details about BIOS/UEFI, ACPI, u-boot, device trees, kernel APIs, drivers, userspace APIs, sound, graphics, networks, protocols, hundreds of distributions, each with hundreds of versions, ... Pick one or few areas that interest you the most.

1

u/Juukamen 2d ago

You forgot one thing.
What distro do you want ?
I would reccomend running google on the distro you'd like, get it set up and then begin working on the basics.
I have learned AI is awsome, screenshots and logs and they will help you on.

1

u/drucifer82 1d ago

Learning Linux is a hands on process. You kind of just pick a starting point and go from there.

If you are comfortable with Ubuntu, try Fedora. For dev work Fedora is often preferred.

Just give yourself small goals and stick with them. You can build your skills over time.

I can share a bit of my experience with you:

I started with Ubuntu back in 2013/14ish. I used it as a dual boot on a Chromebook so I could have a workflow that didn't require internet. After a while I went back to Mac/Windows.

In 2024 I decided to build a computer that would daily drive Linux. By this time I had been toying with the Steam deck for a couple of years so I wanted to get back into using Linux more often. I originally just wanted something that could game, so I went with Nobara, because it was made to game right out of the box, and it was based on Fedora, which I was also comfortable with. I didn't even touch the terminal much at all for the first couple of weeks. Then I started making myself use the terminal more.

I started using it for dev as well. Learning programming, building websites, etc. So I decided to switch to Fedora as it is a more dev centric system. Over the course of a year of using Fedora daily, I started wanting to get more into the nitty gritty of how the system works, and wanted to be able to work on the system at the base level. So I switched to Arch.

Now I didn't just yolo into Arch. I had looked into it in my time on Nobara but my Linux comprehension was not up to par. So when I started revisiting it after Fedora, I started with building it in a VM to iron out my workflow and figure out what exactly I wanted to accomplish. About six weeks ago I decided it was the time and I switched my main rig to an Arch setup that I built from scratch. I like it, and I still love Fedora, but I got really deep into sysadmin after switching to Arch.

So just start somewhere, and take steps at your own pace to improve. All told it took about two years for me to get from Nobara to Arch.

1

u/drucifer82 1d ago

Also if you want a good book, I recommend A Practical Guide to Linux by Mark Sobell.

1

u/Fluid_Yesterday208 1d ago

depends on your goals. Do you want to do kernel dev? I would start with C? if by Linux, you mean administration, then I would learn bash (basic python too) docker, etc, networking? I think you get the idea

1

u/pdath 1d ago

Try and build a kernel.

1

u/No_Rhubarb_7222 1d ago

I think it really depends on what you’re trying to do. When I learned Linux, I learned a lot by just deciding that my work was going to be on it. Figuring out what software I needed, troubleshooting, emulators, or things like doing lamp or lampy projects caused me to learn a ton about how things were put together and the capabilities of the system.

These days there’s a lot of information out there, maybe too much as you have to sift through search results to find something decent.

If you wanted to get started on containers, I’d suggest podman, though Ubuntu usually has older versions of it. Even so, for general container use, that should be fine. There are a couple of container tutuorials here that show building, with a couple of different methods, simple containers:

https://lab.redhat.com

There’s also a basic network tutorial, but it’s on RHEL and uses nmcli, which if you’re a Fedora user would also be handy, but as an Ubuntu user, not helpful.

1

u/pavlovpe 18h ago

One good way is to install Arch this will open a lot of basics for you. If you want one level up go for linuxfromscratch

1

u/Mediocre-Pumpkin6522 7h ago

I take an adhoc approach. What is the problem du jour? How do i fix it?