Skip Navigation

What's the best way to learn Linux?

I've been using Windows since the days of 3.1, practically my entire life. So I'm really comfortable with how windows operates and how to do the things that I want to do.

I've dabbled around with Linux over the years, but am now considering trying to make a full switch to it.

What are some resources to "learn" Linux properly? Such as understanding the filesystem, basic security practices, essential tools or commands, etc?

38 comments
  • I like the Linux upskill challenge for rounding out your education. https://linuxupskillchallenge.org/ it's designed as a 1 month course of an hour or so a day that the author made free to access as his legacy. Don't start out with this -- mess around and learn on your own first, and when you're comfortable with the system, then you can learn more in depth.

    I recommend spending time in a Linux chat room related to learning Linux specifically your distro. When you're messing around in Linux, you can ask questions, and humans are great teachers in helping you with things you don't know you should be learning. Discord is the most accessible, but you can find a specific place for the Linux distribution you go with -- for example Ubuntu has rooms set up on Matrix and IRC that are both active and welcoming to new folks.

    Also just dive into guides on how to do things as you need to do them. How to change wallpaper, how to install programs, whatever. Try finding official documentation, but often guides may be more helpful. But sometimes less. Over time you will learn how to search for answers just like on Windows. If the guides or forum threads don't seem right, you can ask in the chatroom (hey does this make sense?)

    Compared to cmd.exe and Powershell, the Linux terminal is very user friendly, with a user experience they've been refining since the 1970s or earlier, and there is a reason power users tend to gravitate towards using the CLI for some tasks. Sometimes it may be the preferred or only way to accomplish something (Windows has this too, but it's more rare.) Take your time, and read/understand the man pages and the output of nano --help (using nano as an example command: it is a text editor. But you can use the --help option with nearly any Linux command and it will most likely work, by convention.

    Sorry if any of this is too obvious or too much information, but hopefully it helps someone.

  • The first thing to bring to the process is curiosity. Linux is not Windows and doesn't operate in the same way.

    What you think of a normal Windows behaviour, is unlikely to work in the same way under Linux.

    In Linux everything is represented within the filesystem. This means that you'll find USB ports, soundcards, hard drive devices, mouse, as well as running processes, open files, memory and even the CPU as well as everything else to run a modern computer represented inside the filesystem directory structure you're presented with.

    The Linux kernel is the heart of every system. Each flavour or distribution (distro) of Linux package up their ideas for the best way to use the kernel, offering different ways to install applications, drivers, user interface, etc. The variety is endless.

    Note that within each distro are multiple versions. Each distro is distinct and unlikely to do things in the same way, so instructions found online for one might not apply to another.

    The vast majority of software available is packaged from source by a distro and made available to you as a package.

    You can compile anything from source, but that is a very deep rabbit hole, something you'd want to shy away from for the first year at least.

    Packages have dependencies which most package managers attempt to deal with. This works fine if you use the same distro, but has a very high chance of breaking things if you start pulling packages from other distros or versions.

    Much can be achieved with a GUI, but the real magic happens on the command line.

    To get started, set aside an old machine, or build a virtual machine on your Windows PC and start learning.

    I've been using Linux daily since 1999, and I'd recommend that you start with Debian. It's stable, highly compatible, has a massive package collection and is properly documented.

    Other distros like Ubuntu are (loosely) based on it.

    Whatever you do, take it slow, make regular backups of your data and ask questions.

  • In my experience: By bashing your head against it and looking up things online you cant figure out on your own. If that means having to google how to navigate the folder structure, so be it.

  • If you ask me:-

    I use a combination of my instincts, including distro-hopping, since I began using Linux in 2017, reading articles online about Linux tutorials, and even watching YouTube videos. I gave up on Linux and returned to Windows many times, but it ultimately made me return to Linux because it is meant to be my forever operating system. There are so many Linux tutorials available online, including on YouTube. Indian channels taught me how to install Ubuntu, and that was my most memorable beginning with Linux. I also recommend chatting with current viral technologies such as generative AIs; they'll provide you with answers. So, keep exploring Linux. 😎👍

  • Before I swapped to linux full-time, I used virtualbox to create test environments from various distros to see which one I liked best.

    After testing: EndeavorOS, Manjaro, PopOS, Nobara, Ubuntu, and openSuse
    I settled on Endeavor as my main driver and have been running it for over a year now. openSuse came close second for me, and Nobara was a distant last, I really did not like it. The important thing for me was to try several of them in a safe way that would let me experiment on if this was really something I wanted at all.

38 comments