Learning Linux 🐧

If you had to learn Linux from scratch all over again, how would you do it, with the knowledge you have now? What are some important concepts that you’ve learned on your journey and what are resources that helped you the most?

I have pretty extensive knowledge of MS systems and general system administration of windows environments and am currently looking to expanding my knowledge. I also decided to ditch Windows completely, the more you know about it the less you like it.

Ultimately, I’d like to be able to contribute to the open source community (still not sure how, have to see what I like doing) but it seems a bit overwhelming. How did you start your journey? :smiling_face:

1 Like

Welcome!

I started my journey with Linux with Red Hat 5.1 or 5.2 - long enough ago that I built my own kernels in order to ensure my hardware was supported.

A lot has changed since those days.

My advice is to install Linux it and start using it. There are lots of different ways to contribute to the open source community, so where you go with it depends on what your skills are, what skills you’re interested in learning, and what you like (as you indicated, still things you may need to figure out).

Probably the most important thing to learn coming from Windows is that Linux isn’t Windows. It sounds obvious, but you’ll have ways of doing things that are ingrained from repetition and muscle memory. Those things will need to be relearned as you start working with a Linux system.

Another important thing to learn is that open source is about choice. Asking “what’s best” is best answered with “it depends on what you like”. Try things and see what you like, and what works for you (and what doesn’t).

If there are things you want to try that might be destructive, have a virtual environment (or a system that can be reinstalled whenever necessary) available to experiment on. Recovery is often possible, but it’s better to have a safe system to play on.

Learn about containerization (Docker/Podman) for hosting services. This technology is great for creating an environment that’s “isolated enough” that apps aren’t going to step on each other with differing dependency requirements, and is a gateway to using a tool like distrobox to effectively run apps with different distribution requirements (for example, if you are running openSUSE and you have something that is only available on Debian or Ubuntu, you can set up a distrobox environment for that application - it’s lighter weight than a full-blown VM).

Those are the things I’d probably start with.

8 Likes

Hi, welcome.
One of the things I keep on saying is that distro hopping doesn’t teach you a lot of thorough knowledge. Better learn to work wih one or two. Same goes for desktop environments.
I ditched Windows in ~2001 and never went back. Became active in forums / IRC etc and never regretted

4 Likes

Hi and thanks for the welcome :smiley:

I agree with you that the more you use it the more you get it, I am feeling that in real time. A lot of time when doing stuff I find myself in the same folders so I memorized some of them.

I was kinda looking into everything you’ve suggested so it’s great to get a confirmation that I’m on the right track :sweat_smile: I wanted to backup my dotfiles config and then pull it when needed for testing from VM. Still have to look into that. Any suggestions? How do you go about finding the right tools for you. I’ve found this site but it’s kinda hard to pick when you don’t yet know what you’re doing and this seems like an important decision to make: General-purpose dotfiles utilities - dotfiles.github.io

For virtualization I was thinking of looking into Proxmox. I know how to work with vmware but I don’t like them (greedy, from today, April 1st they require a minimum 72 core license subscription for VMware vSphere Standard, and they’ve removed one year contracts)

a tool like distrobox to effectively run apps with different distribution requirements (for example, if you are running openSUSE and you have something that is only available on Debian or Ubuntu, you can set up a distrobox environment for that application - it’s lighter weight than a full-blown VM).

This sounds awesome. Definitely something I’ll look into. Thanks for the advice!

I hear Proxmox is good, but I use VMware Workstation Pro (it’s available free for all uses now, in case you didn’t know - though I do understand the changes they’ve made in the paid products and also wouldn’t be happy with them if they affected me). I’ve also used VirtualBox in the past, and it’s a reasonably good solution.

If you want to get into virtualization that’s Linux-kernel-based, take a look at KVM. There are tools with libvirt that are pretty good (so I hear - I haven’t played with it myself directly, though I have worked with configuration in virtualized systems that run under KVM).

For backup of user configuration files, I probably would look to use either rsync or a backup tool like Borg (which I use the Vorta frontend with).

When I am looking for a tool to accomplish a specific task, I usually use Google or look for community recommendations. More often than not, my needs aren’t met by a specific tool, so I’ll knock out a script (either in bash or python - python is a good language to learn for that kind of thing, especially if using REST endpoints for various things).

1 Like

My decision of picking openSUSE Tumbleweed is also a bit political. I’m not really interested in distro hopping, I am fully determined to stay on openSUSE. I’m mostly interested in learning openSUSE for myself and rest of distributions as much as it’s needed for my job. We’ll see how it goes, I feel inspired and optimistic, let’s see how long it will take for it to crush me :rofl: So far everything I’ve seen, I really like

You mentioned desktop environments. What makes it so different? Is it because apps are written differently? I’ve tried GNOME and Plasma and decided to stick with Plasma because GNOME gave me some weird issues with my peripherals. I like both, though, maybe KDE a bit more

2 Likes

Ultimately, it’s all about what you choose. Just because you run Plasma doesn’t mean you can’t run GNOME apps (or vice versa). They may not be as well integrated into the desktop environment, but as long as the necessary libraries are present, you’ll still be able to run them.

1 Like

On gnome versus KDE: To be clear you can still run “KDE applications” on gnome and vice-versa.

For most people KDE versus gnome is I think just esthetics and that is fine, what is for me a point is that KDE is more tunable/configurable.

You indicate it’s needed for your job, can you tell us what your role will be?
Probable good to understand the difference and the similarities between Leap and SLE Desktop.

Give the above you may start with Hands-on: How I learned to stop worrying and love the systemd / How I learned to stop worrying and love the systemd / Galaxy Server administration.

Tumbleweed has excellent vendor defaults. For many use cases only a few local changes are required. Few drop-ins and very few local services suffice.

Go with Tumbleweed LATEST and stick to KISS.

1 Like

While I do consider myself a noob when it comes to administrating and/or maintaining a Linux system, my journey began 20 years ago with a very simple task: I just wanted to have an IRC client running 24/7.

Back then there were multiple small companies and non-profit organizations providing cheap shell accounts for file hosting, email and IRC.
In addition to the IRC client itself (irssi), I had to learn some command line basics like cd, mv, cp, rm, ls, mkdir, ssh, scp, screen
 I even used Pine to read and send email because I thought it was cool.

Since the server was not my own I had no responsibilities beyond the service provider’s terms of use.
But I still had to learn how to troubleshoot. Like when I accidentally sent a pause command to my screen instance. Or when I wanted to make my public_html index view inaccessible.

And of course, being a long-time Mac user, macOS is another place where I have been utiziling the command line in vary basic ways.

So, when I decided to get into Linux as a hobby, host my own server, run Tumbleweed on my desktop, etc. I already had some basic knowledge and it has certainly made things easier. But now I also have responsibility which means that I have had to learn a ton of new things.

What’s completely new to me is interacting with the GNU/Linux community. :stuck_out_tongue:

1 Like
  • The concept of processes (and their owners).
  • A thorough understanding what it means that Unix/Linux is multi-user and multi-session.
  • The one and only directory tree on mass-storage (and thus the concept of mounting file systems to build that tree).
  • How file ownership by user and group and the permissions that go with it function.

These are the main concepts that come to my mind about which many people lack understanding and that thus lead to many of the “problems” asked about in the forums.

1 Like

Well it’s not needed per se, I work as a sys admin, most of devices we have are windows servers and when we can’t do it in Windows we do it in Linux and usually deploy Ubuntu. They are, however, open to implementing new technologies, I just gotta learn and put in effort before suggesting anything. We have a couple of things that run on Linux, mostly specialized apps or services. Like Duo Authentication Proxy, for example Authentication Proxy Reference - Duo | Duo Security

@Xolik Then you could look at using the likes of Leap Micro and run in an Ubuntu distrobox
 Then you also have the likes of kubernetes and using helm charts if available


When working as an sys admin I would start with a small “home lab” and do some experiments with networking, virtualization. monitoring and security. Try things without to much care, fix things, lose some things and learn to recover stuff.

Also good: DevOps Roadmap: Learn to become a DevOps Engineer or SRE.

2 Likes

What I did then, despite the fact that my main source of information no longer publishes books – O’Reilly 



No longer active but – <Linux Documentation Project (Wikipedia)>
Better than nothing – <Linux Documentation Project Guides>
O’Reilly books in (physical) circulation «Used (2nd hand) and new 
 » – for example ISBN 0596000251 – <LINUX in A Nutshell: A Desktop Quick Reference (3rd Edition)>

Well, I wouldn’t know exactly how to contribute in this thread. But, perhaps, saying something from my own experience could be valuable. I learned because I needed at that moment in time, so I went on facing what I had to face during each particular situation. That is not completely an inconvenient manner to do it, just jump into it and solve each issue at its own moment. But perhaps you could also build a better program more suitable to your own needs. This is, learn something about linux, something about a chosen distribution, and then about its own features. Forget about windows! :wink:

1 Like

No one has mentioned the openSUSE documentation – <openSUSE Documentation>.

There’s also a reasonable GNOME handbook there – for KDE you’ll have to visit the KDE Documentation – <KDE Documentation>


For professional certification of Linux system administration, you could check the Linux Foundation – <Linux Foundation - Education>

Learning Linux is easier now than before. I would definitely just start using Linux whenever you can. If you are not able to use a dedicated hardware, you can use a virtual machine instead. WSL2 in Windows is an option if you want to focus on the terminal and not worry about desktop experience / windows managers.

Also, now you can consult many of the GenAI / LLM services, many offering free or no-login required experiences. Just keep in mind the training cutoff date – for example the popular ChatGPT-4/o series model goes up to October 2023. I find the model is very good as explaining complex terminal command line options and it really helps supplement the documentation in the man pages.

Also remember to take anything any LLM tells you with a grain of salt - while they’ve improved, they still do have a tendency to hallucinate answers, and if you’re learning something new, it’s really hard sometimes to distinguish between what’s real and what’s a hallucination.

Never take an AI’s answer 100% at face value - treat it as a starting point, but never an authoritative answer.

As you said, it’s a supplement to the documentation, not a replacement.

5 Likes

@Xolik I’d recommend finding a project you interested in for example I setup a Raspberry Pi 3 to be a local time server with GPS along with RTC. Another was Aircraft Tracking with ADS-B, setting up systemd services and nologin users to run the services. Always fun to get your hands dirty on a subject that interest you.

I actually start my Unix/Linux journey on Solaris (circa 2002), I was involved in a project to send out snmp traps where none existed on the equipment only log entries
 I had to learn Perl for that and came across a utility that fitted the bill called simple event correlator https://simple-evcorr.github.io/ which I contribute to as the openSUSE (and SLE) packager/maintainer since 2010 :wink:

1 Like