Where do you guys get your Linux know how?

Deadjasper

2[H]4U
Joined
Oct 28, 2001
Messages
2,584
I never cease to be amazed at the depth of understanding many of you have about Linux. I'm a relatively new convert and would love to develop a useful skill set but don't really know where to begin. There's a vast amount of info out there but it all seems to be fragmented and much of it just plain out of date and irrelevant. So how do you guys go about acquiring a coherent understanding of the inner workings of Linux and how do you keep it current?
 
Linux+ study guide is a good place to get it done semi-formally, and quickly. Or, find a guide on configuring something on the internet and figure out what each bit of the command does.
What does dd do?
du?
df?
free?
ps?
pwd?
ls?
ss?
iptables?
mkfs?
w?

All common commands used in Linux.
 
Start running it.

Quickest way: grab Virtualbox, toss the latest Ubuntu ISO in a VM, and go.

Dual-booting is quite a bit more advanced today too- Windows installs go unmolested by the mainstream distros.

But if you want to learn, start using it.
 
The best way to learn this stuff is by living it every day. Do what you must to get started, and then try to use Linux for everything. Learn to read man pages, even if they're hard to read, and poorly updated; read at least one or two of the 'see also' pages at the bottom of the man page too, even if you don't need it -- it might come in handy later. Compile everything you can from scratch -- not because it's useful, but because it will present problems you'll need to learn how to solve. When you're compiling the linux kernel, take time to read through all the files in the Documentation directory -- although maybe you can skim the ones for hardware that's been obsolete for 20 years.

Once you've done that, be aware that pretty much everything in Linux is subject to being almost replaced by something else that works kind of the same, but the names have changed and the documentation is even worse. This is a bit snarky, but it's also fairly true, which is why old documentation doesn't work so well anymore. I'm tired of churn, so I prefer FreeBSD where my skills don't expire as fast. OTOH, I'm planning to retire soon, so I don't care about FreeBSD being less marketable than Linux.
 
On top of the good recommendations above:

Install Proxmox onto an old machine and get started with virtualization and containers. Start out by using it to run substitutes for many of the services that are commonly handled by a consumer router (e.g., DNS, DHCP, Pi-Hole, VPN server, etc.). Then find some other apps that might be good to run centrally and set those up. Proxmox doesn't natively support Docker (it does support LXC), but you can always run it from within a guest.

Grab a Raspberry Pi and find a project you like that utilizes it. Back issues of MagPi are free to download. The org also has Hackspace, which is kinda their version of Make Magazine.

If you still have a decent local bookstore, check them out. My nearest Barnes & Noble, for example, carries 3-4 Linux magazines. Flip through those and whatever books they might have to see if any app/project piques your interest.

Basically, find something about Linux that interests you and dive into that, beating your head against the wall until you get it. Using it day-to-day is a good start, but unless you find something to hold your attention you probably won't get very far.
 
Easiest way is just simply use it. Ubuntu or a derivative of Ubuntu like Mint to start. Then branch out. Using Arch Linux will teach you a lot. Don't use a derivative for learning, like Manjaro or Antergos, because those do most of the interesting work for you. You want to really get into the nitty gritty? Go build a Gentoo box. I did that once and only once. I'll never do it again but it was well worth the learning experience.

Oh and here's your light reading materials list:

https://fossbytes.com/basic-linux-commands-awesome-cheat-sheet-download/
https://www.makeuseof.com/tag/folders-linux-root-directory/
https://itsfoss.com/learn-linux-for-free/
 
Use it. I'm still learning. I find myself on my linux box more than my Widows machine these days
 
For me, it's mostly been just by using it as my daily driver, and poking around. Usually what happens, is I want to do something like setting up a server. That then leads down a rabbit hole of configuring various services that results in me learning how to do more than just setting up the one service I set out to do. For example, when I setup my Plex server, I then had to learn various command line utilities that I didn't know how to use before because I chose to go proper server and install Ubuntu Server which has no GUI. So, I had to finally learn how to use parted from the command line to setup my TV recordings backup drive, and also I had to learn more about manually editing the fstab to add my network shares and my backup drive partitions. Not that any of that is hard to do, but before setting up that server I just tended to rely on GNOME's Disks application to do the fstab and partitioning stuff for me.

So, that's really a long winded way for me to say that instead of just using it as a daily driver, I'd also recommend picking random projects (Plex server, nextcloud server, etc) that force you out of your comfort zone. A great way to learn, and also a great way to enhance your daily life for stuff like cloud storage (nextcloud) and home media consumption (plex).
 
I did set up OwnCloud once. That was a nightmare that took me several days to get working. Then I read that it's inherently unsecure and should not be exposed to the Internet, it should be for internal use only. I decided it wasn't any good to me then. I did learn quite a bit setting it up but probably forgot most of it. It's been awhile.
 
I tried the Nextcloud snap that's available with Ubuntu server... that was a no go. The Nextcloud instance itself worked, but I couldn't get it to configure in such a way that it would work with FreeNAS- and the version included with the latest FreeNAS has issues too.

I'm still looking for something that I can use as a universal cloud platform for my NAS...
 
I never cease to be amazed at the depth of understanding many of you have about Linux. I'm a relatively new convert and would love to develop a useful skill set but don't really know where to begin. There's a vast amount of info out there but it all seems to be fragmented and much of it just plain out of date and irrelevant. So how do you guys go about acquiring a coherent understanding of the inner workings of Linux and how do you keep it current?

Pretty much by just using it as it is and fixing things as they show up. For myself, whether it is Windows, Mac OS X or Linux, they all do the same things and troubleshooting is always the same. Patience helps as well and trying not to overthink things. :)
 
For what it's worth, I'd recommend the Gentoo install as well. I teach at a small University and I use this approach for Linux Server Admin classes. By the time you've partitioned a drive and set up a filesystem, gotten a working kernel, and added in a GUI and other needed applications on the box you have a damn good idea of how everything works together. Just make sure you actually read and think about the documentation. If you just blindly type stuff in this (or anything else) isn't going to actually help you.
 
I learned a large chunk of my basic linxu/unix knowledge by running only Sun Solaris (8) at home on my main desktop for ~3 years around the time winXP came out. Anything I wanted to do i had to figure it out in a painful way, mostly command line. Want to listen mp3s, find some random project and compile it. want to chat with your friends, find some program and compile it, and so on. While that is a case of running Unix rather then linux, it was pretty easy to pick up the linux specific things as they came out over time having learned the fundamental familiarity with command line, and config files. I think this is harder to do these days. The popular distros i would tend to recommend to people have come a long way in being user friendly, ubuntu for desktop, centos for server, making things a lot easier. This is a double edge sword, while i love the convince of being able to apt-get and yum install almost anything i want, it makes it harder for a user to really dig in to how things work behind the scenes. I'm not sure where i would start these days if I really wanted to learn from scratch, maybe living the pain of something like Gentoo or starting with freebsd would be the best way to force your self to learn those inner workings. It kind of depends, do you just want to become a pretty proficient user, or do you really want to know this stuff. If i really wanted to get good, i would force my self into one of the more command line heavy distros, or at the very least try to stay away from the gui for managing my system as much as possible. everyone has different priority's and learning styles.
 
You gain knowledge by doing what you did under Windows - Use your new Linux install every day as your daily OS. Every time you break something you'll learn something new.

Pro tip: If you ever have an issue with software crashing, be sure to start it via terminal. Every time you start software via terminal you see every step of the loading process and can literally pinpoint the exact cause of the issue. I also recommend sticking with one distro, I recommend an Ubuntu based distro.

Linux is Linux, it's not fragmented. The only real difference apart from the level of customization available is the package manager.
 
Last edited:
Linux is Linux, it's not fragmented. The only real difference apart from the level of customization available is the package manager.


Gotta disagree with this somewhat. I don't know if "fragmented" is the right word, but there can be significant differences in how things are set up between various distros. A few examples, off the top of my head:
  • The init system (systemd, SysVinit).
  • How networking is configured (NetworkManager, NetPlan, straight systemd)
  • Organization and naming of /etc files (e.g., the Debian /etc/default dir).
  • AppArmor vs SELinux.
It's all stuff that an experienced Linux user is accustomed to, but can really throw a beginner.
 
Gotta disagree with this somewhat. I don't know if "fragmented" is the right word, but there can be significant differences in how things are set up between various distros. A few examples, off the top of my head:
  • The init system (systemd, SysVinit).
  • How networking is configured (NetworkManager, NetPlan, straight systemd)
  • Organization and naming of /etc files (e.g., the Debian /etc/default dir).
  • AppArmor vs SELinux.
It's all stuff that an experienced Linux user is accustomed to, but can really throw a beginner.
Not to mention a beginner may not realize that a tutorial that was made for, say, Ubuntu 12.04 does not work in 18.04 90% of the time.
 
For a variety of reasons I up and switched (Laptops, servers and all family PCs) in 2001 to Linux, had zero prior experience.

Took some effort, but the experience was fun and very rewarding.
 
Not to mention a beginner may not realize that a tutorial that was made for, say, Ubuntu 12.04 does not work in 18.04 90% of the time.

This is what I ran into loading Next Cloud. Far too many instructions that didn't work, big waste of time. What I'm aiming for now is to learn how Linux actually works rather following step by step instructions. This thread is a great start. Many thanks to all.
 
Gotta disagree with this somewhat. I don't know if "fragmented" is the right word, but there can be significant differences in how things are set up between various distros. A few examples, off the top of my head:
  • The init system (systemd, SysVinit).
  • How networking is configured (NetworkManager, NetPlan, straight systemd)
  • Organization and naming of /etc files (e.g., the Debian /etc/default dir).
  • AppArmor vs SELinux.
It's all stuff that an experienced Linux user is accustomed to, but can really throw a beginner.

Which is pretty much apparent under all operating systems, every operating system evolves as time goes on. When it comes to macOS, they make changes under the hood and don't even document them!

Naturally, stick to advice within a generation or two of your OS and you should be fine.
 
This is what I ran into loading Next Cloud. Far too many instructions that didn't work, big waste of time. What I'm aiming for now is to learn how Linux actually works rather following step by step instructions. This thread is a great start. Many thanks to all.
Recently, I've found that digital ocean's tutorials are some of the most consistently awesome out there. I used their Nextcloud tutorial for 18.04, and they show you step by step how to do it as well as providing explanations for each step.

https://www.digitalocean.com/commun...stall-and-configure-nextcloud-on-ubuntu-18-04
 
Nextcloud is one of my next adventures after I get more storage space
 
Recently, I've found that digital ocean's tutorials are some of the most consistently awesome out there. I used their Nextcloud tutorial for 18.04, and they show you step by step how to do it as well as providing explanations for each step.

https://www.digitalocean.com/commun...stall-and-configure-nextcloud-on-ubuntu-18-04

I'll save this to bookmarks. I like text based tutorials as opposed to any tutorial on YouTube. I can take my time with text based tutorials, video based tutorials always need to be paused, you've always gotta rewind - It's a PITA.
 
Is Samba actually broken, or does the interface just not come enabled by default? I don't know for sure, so I'm asking for my own knowledge.

From what I've read it's missing from the snap build period. What I found is that neither SMB nor NFS were available for configuration, and I needed one of the two for full functionality with FreeNAS.
 
It's been increasingly difficult to map network drives by name and browse for shares under all operating systems since the removal of SMB1 by default and modifications to SMB as a result of WannaCry. Are you sure this isn't the issue?
 
It's been increasingly difficult to map network drives by name and browse for shares under all operating systems since the removal of SMB1 by default and modifications to SMB as a result of WannaCry. Are you sure this isn't the issue?

No, I'm sure that the option is literally missing. And when I looked it up, assuming my own obvious ignorance, I found that that was actually documented. Option literally isn't there. If it was, I'd be running it.

I do hope they fix it- next try is to figure out FreeBSD jails in the FreeNAS interface.
 
While what I know is tiny compared to most people here the only reason I know what I do is because I mess with it and I use it. It's the exact same way I figured out how to troubleshoot DOS and Windows issues. Something broke and I had to figure out how to fix it. I messed with stuff to see what it would do. I broke stuff by messing with it and then had to fix it back to original state, figure out why what I did broke it and then figure out a way to make it do what I wanted it to do without breaking it again.

These are the reasons why when people say Linux is "hard" I don't necessarily believe them. In most cases it's not hard but just unfamiliar. They're simply not used to something that's different and until they gain experience it's going to stay unfamiliar and "hard".
 
Similar to others, I am still learning. I will say i have learned a lot by asking the guys on this forum, as well as by screwing things up and figuring out how (through trial and error, this forum, as well as googling) to get it fixed. I actually (re)installed Linux about 5 times in the process of getting my "home server" up and running. Each time I had learned more that let me get it back up and running quicker.
 
This is a hobby/business that one is always learning. The choice that many are confronted with is, what do I want to learn.
 
  • Like
Reactions: Lunar
like this
I started using Linux in the late 90's. I had tried dual booting with Windows for a bit, but found myself running back to Windows too often instead of solving the problems I was having. Blew away Windows and installed Linux as my only operating system. It took a while and countless times of re-installing the entire OS, but now I prefer *nix operating systems over Windows.

My first Linux distro was Redhat, starting with version 4.2. I eventually switching to Ubuntu when their first 4.10 version came out. Now I prefer Ubuntu for home, and Redhat for work. I also work heavily with IBM AIX at work.

I haven't been happy with the direction Linux has taken in recent years though, so I've been increasingly moving towards BSD's. FreeBSD and OpenBSD primarily.
 
Youtube is a great source for all sorts of tutorials which often help much better than manpages.
 
Back
Top