Recently, I’ve been using linux(tried multiple distros). I’m curious about how linux works, it’s architecture! Is there a book, guide, video, etc to learn about linux? By using linux, I get to know something. It would be better If I know how linux works!
If you really want the deep dive, look into LFS (Linux from scratch), besides that I’ve always been the learning by doing kind of guy. Got a problem? Search a solution and read up on the intricacies of the problem
I can also suggest installing gentoo if LFS is a bit much, which is understandable. It won’t have as much direct information as LFS but if you look up everything you don’t understand and follow all the links you’ll get a fairly good concept of the thing
Hey, I will try to ubderstand LFS and build it myself. If it’s much harder than I expected it to be, i will install gentoo. What about arch? Why install gentoo instead of arch? The installation process of gentoo will teach me about linux, the same could be said about arch?
Absolutely, arch will teach you quite a bit. Not nearly as much as Gentoo though. If you’re going for learning how things work at a core level Gentoo is a fantastic place, though of course LFS will be better though more involved. I’m glad you’re willing to take the harder path though!
As for arch, it’ll teach you about mounting, user management, partitioning and partition management, an overview of how to set up a system and a few of the options available, and make you more comfortable with the command-line. With a few exceptions, that’s about it. you can understand what makes arch arch in less than a day.
As for Gentoo, it’s a guided experience that will teach you all of that but much, much more than arch will. With arch you could look more into it, and arch will be very well documented on what to do, but Gentoo will lay out the choices clearer with an explanation as to why. What is SystemD and why would you use something else (or, why you need so much to replace one thing?) How is networking built up? how do package managers work? What different kernels are available and why would you use them? What file system should you use? How does networking work on Linux? How do you install a tarball? What are firmware and microcode?
Just look at the index (legend?) on this page Gentoo Wiki and then this page Arch Wiki (on the left.) You’ll see how much more Gentoo goes over
To be clear, I use arch on my main system, it’s a fantastic OS and I’ll likely use it until the heat death of the universe, but installing Gentoo, following the links, and searching up what I don’t understand has taught me much more. LFS will, of course, teach you essentially everything though. It’s a great option, and you’re in for a fantastic journey. Once you’re done you’ll be the most impressive person in the room, if that room is full of us linux nerds
Once you’re done you’ll be the most impressive person in the room, if that room is full of us linux nerds
New life goal unlocked.
To make the learning process much more enjoyable, I’am going to try one of the OS’es either arch or gentoo. Which one will best for as a beginner? As gentoo has much more wiki than arch, which one will best suit for beginners(like me) to trying to understand things? Are there some resources, where I can learn some very basic stuff like about package manager, linux kernel, etc(if there, please share it here) and then it would be good if I go onto the installation and then onto the LFS thing. Learning linux would be a fantastic journey!
As a beginner I installed Arch manually to learn things and was kind of disappointed. The only hard thing was to understand the partition system, so it’s more or less the only thing I learnt. Sure there were pieces of other things learnable, but it was small things.
Now I want to try to install Gentoo.
I’d argue gentoo isn’t the worst thing to do even as a beginner, but installing arch would likely be the best first step as it’s shorter and you’re more likely to get it running first try. You also don’t have to compile.
As for other resources, though I prefer reading and doing, youtube might help. Specifically, chris tituss tech’s linux basics playlist or learn linux TV playlist on the subject. Another great resource is to just read the
man
page for and specific commandOther than that, install in a virtual machine and start breaking things. Finding the solution will likely teach you quite a bit
Hey, thanks for the great suggestion. Looked onto it and it’s great to build your own linux. I think that’s really the essence of linux, the freedom to build it on your own.
no joke it’s how I learned linux, bootstrapping a gentoo install from the toolchain on up, with a printed manual. it’s surprisingly effective, if time-consuming (took me about 2 weeks to get to a booted system, though most of that was compilation time - took ages back then).
One more tip, if you already have a Windows environment, spin up VMs with Hyper-V and start from there. Anytime you mess up, just nuke the VM and spin up another one. I must have burnt through hundreds of VMs (hyperbole) while testing out distros that I like.
Another vote for LFS. I like that it is really at the right level of depth (assuming that you already have a basic grasp of computing in general). Even if you end up going with a distro, reading through LFS gave me insights as to why certain things were done in certain ways. Alot of “quick-start” style guides tell you what command to type in, but for brevity reasons, they don’t explain what the command does. For example, you may come across many guides tell you to type
sudo
orsed
orecho
or|
or>
. It may seem daunting at first, but gradually as you become more at ease with the CLI, all these will start to make sense.
I’ve been dabbling with Linux for 30 years and it’s only in the last few that it really clicked. I needed a project.
Go start a home server and give yourself projects to work on. Makes Linux very fast to pick up.
A simple distro, like one for a raspberry pi, is also helpful.
I actually would recommend learning a hypervisor.
Not first. For sure. But before you want to do anything serious.
Proxmox made learning home service hosting so much easier and faster to unfuck.
What I did back in the day when I started Unix was mostly explore.
I looked at what was in /bin and read their manpages, or just browsed manpages to see what did what (your desktop manager will probably have a help browser nowadays that makes this much easier, in KDE it’s the Help Center), and generally experimented with stuff.
Poking at things to see what they do is probably the best way, especially on a system that’s not production. Also there will be a lot of reading involved, although it will mostly be to get a feel of things, as in the end, you’ll essentially have to be proficient in finding information rather than memorising it for the most part.
And don’t get too hung up on the whole distribution thing, in the end they all install the same stuff anyway.
Wow, I’ve planned to learn linux by exploring and doing. Any suggestions on exploration?
Create a VM on your current machine, install it, install software on it, try use it as your daily driver. Don’t forget to take snapshots of your vm incase you break something.
But… Then again, if it does break, nothing like reinstalling again to make sure you know what you’re doing ;)
I was going to do this, but ended up happening across the Orange Pi 5 upon release and managed to get an order in.
I had it running Ubuntu 22.04LTS, but there were some OPi specific issues I just wasn’t capable of troubleshooting myself at that stage, I’ve since switched it to 23.01 non LTS and is much better suited to me.
That said, even after discovering gnome extensions I still dont like gnome that much. I’m trying to get a better handle on CLI so I can abandon the desktop all together later.
But yeah, having a whole device just for experimenting with has been huge, very much helps keep me from distractions, I usually will just swing my monitor towards my bed and play twitch while I mess around.
Edit: it’s also saved me the issue of adding to my already chaotic daily filesystem, all my projects are on GitHub, I’ve gotten more proficient at getting a distro going, the urge to hop around a few more is really growing now.
You’re going to suffer if you run a machine without a desktop.
Gnome is a bondage and discipline desktop, so you may not enjoy their way of doing things (if so too bad, because their way is the right way). Just try something else, like KDE or XFCE, or whatever. Or just run a window manager. Even tvwm is more comfortable than a plain terminal.
Cheers for the info, I’ll have a deeper look into it.
Heres a tl;dr of some “must learn” things in order to use GNU/Linux in an acceptable fashion;
-
Package manager (how to install, remove, clean old packages)
-
The “know-hows” (Which package goes for audio, video card, webcam, etc)
-
How to make a minimal/baremetal installation (Which is a very simple process nowadays – it takes only one package to do this)
Thats it.
Yep, having stumbled around and learned many of this the hard way (guided by a knowledgeable friend) it was a big headache, however it’s stuff I’m not going to forget anytime soon.
-
A good way is to build Linux from scratch. It gives you a totally new perspective of not just Linux but any operating system and is a lot of fun! https://www.linuxfromscratch.org/
Fun weekend project for the whole family !
Just type a bunch of stuff, then play with your kids as it compiles!
Let your kids compile the kernel! It’s super easy and fun, rated for ages 2-99.
Nothing will teach you the basics of Linux better than a good ol’ Arch installation.
- Arch user sneering at Ubuntu user
- Gentoo user sneering at Arch user
- Linux from Scratch user sneering at Gentoo user
AmogOS user sneering at Linux from Scratch user
Debian user sneering at all the other users
As a NixOS user, I love Debian, but it misses many of the packages I need.
Grass touchers sneering at internet users
IMO running through a Gentoo installation is a great way to learn.
The handbook is well documented and walks you through all of the steps that an installer would traditionally do.
You can do it in a VM or bare metal if you’re feeling adventurous!
I found that, at the cost of a few months of absolute suffering, using Gentoo as my first distro fasttracked my Linux learning.
Yeah, Gentoo is a good way to get your hands dirty. Reading the guide and trying to dig in deeper as to what you’re doing will give you a decent understanding of Linux.
And for more in depth explanation of compilation, patches etc. consider LFS, or at least reading the ‘book’ on https://linuxfromscratch.org/
Even manually installing Arch is a good way to understand the parts of a Linux system, stuff like users, package management, etc. Without heating your house all summer compiling the kernel.
Try setup arch or even gentoo with the help of the arch wiki or gentoo wiki
Delete a bunch of files from /bin then try to get back to a working system (hard mode)
And then fix it from CDROM sources without internet. That’s 90s hardmode.
If you want to learn the terminal there’s a game called Hack Net that teaches you command line. IMO if you pick a distro like Ubuntu, Pop, Zorin or Vanilla you don’t need the terminal tho
if you really want to get into the details, there’s the Linux Upskill Challenge ( !linuxupskillchallenge@programming.dev and https://linuxupskillchallenge.org/ ) – runs through the nitty-gritty of running a Linux server – aimed at remoting in to a command line but it looks like the majority of the lessons would work just fine from a terminal or console on your own computer
The MANnly way is to use the man pages for things your curious on. The arch wiki is another fantastic tool
Are you talking about the complete OS or the kernel?
the whole OS, everything from kernel to installation to philosophy
I printed out a Gentoo manual in 2004 and compiled from scratch to a working os with x. I ruined it a week later and went back to Windows and learned nothing that stuck with me. Ive been messing around with free slackware cd’s since the late 90’s, whole smart home is running debian and ive been gaming on linux close to 10 years now, the synenergy with the deck is fantastic.
I’m gonna try and start the course in the top comment :)
I took this Udemy course for ~$10. Great lecturer who is passionate about Linux and FOSS
Think of a project you want to do, seek how to do it and do it, then break it and fix it.
I’ve learned Linux (and vim) just by forcing me to use it. One day I’ve installed i3 and just used it forcing me to solve my problems by myself haha
@amphetaminisiert @fbsz i3 was so intuitive (long time Vim user) that I ditched macOS for Linux because of it.