If you're a near absolute beginner then Linux Journey is a good place to start.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
If by chance you understand German this is an excellent beginner course: https://www.math.uni-bielefeld.de/~frettloe/teach/unix20.html otherwise I would grab a book; but I have no specific book to recommend. However, to name some I found interesting after a quick search:
- How Linux Works: What Every Super-User Should Know
- The Linux Command Line
Danke dir
Try your local library - one of the most underrated free resources.
Nearly every lib I've been to had at least a couple of decent linux books, so you can just snoop around and check out which ones you like.
Recommending the library when someone is asking for information on a specific topic is almost as helpful as pointing them to a search engine. "Just google it and use whichever result you like".
What? No.
At least in all the libraries I've been to in my life there is a dedicated section for operating systems, which contains a subsection with just Linux books. You can ask the receptionist "Where is the Linux section?", walk up to it and there it is. And you can grab a book and skim through it to see whether it suits you.
How is that not information on exactly that specific topic?
Genuine question:
Have you ever been to a library when looking for something specific? Was your experience vastly different from mine?
Publishing a physical book is expensive, publishing a website is dirt cheap. For the publisher and author of a book it's much more imperative to release good content that people will want to read, cover to cover. You can find more extensive, in-depth, and up-to-date content on the Internet but where exactly and is the info all in one place? Websites are also often made with the assumption you'll jump around or that you know what you're looking for. If you're learning something new it's often best to have a linear, paved path and not be your own guide.
Edit: Someone else said it first but I was trying to say library books are "curated" in a roundabout way.
Usually a library is curated, while the internet isn't. Idk I usually have a good time there. It's an amount of books on the shelf I can still manage. If it's multiple, I grab the 5-10 or so books, walk to a table and skim the table of content and a few pages, see which one has the info I was looking for and has a style of writing I like. (And isn't outdated.) I regularly find Linux or programming books that way. And they all have some minimum standard in the library so I'll find something within 5-10minutes.
https://doc.opensuse.org/documentation/leap/startup/book-startup_en.pdf
The best pdf imo
https://fr.linuxfromscratch.org/view/lfs-stable/
To know what the standard packages do
I would look for something interactive e.g LFS but in containers (or VM or WASM VM) with checkpoints with instructions, something risk free yet hands on.
Not for books.
I agree, nothing made this stick better to me and help me understand networking more than building my own homelab and configuring a bunch of different services together.
The book that got me started was "friheden til at vælge Linux" (Freedom to choose Linux), at the time it was available in other languages, but I can only find the Danish version online:
https://linuxbog.dk/ (last updated in 2020)
When I started my LPIC I bought the "LPIC-1 in depth"., it's a bit dry but very thorough.
When I switched to webdev, I dropped $20 on a system admin Linux course on Udemy. I highly recommended this approach.
What do you consider a structured approach? Are you after something with video lessons and lesson plans or do you just want to be thrown ideas about what to research?
If the latter, here's some ideas:
- What are kernel modules?
- How do kernel drivers and kernel modules differ?
- What are daemons in Linux?
- How to use crond?
I want to cover a little bit of everything so that diving deeper later becomes much more efficient. For example, I want to understand the directory structure at a surface level before diving deep into installing and understanding the utilities and limitations of specific tools/packages.
Then I would look for linux sysadmin resources, f.e.
https://github.com/shiiaii/fork-david-linux-administration-books/blob/main/Practical_Linux_System_Administration.pdf
https://www.linuxfromscratch.org/
here's latest generated document
https://www.linuxfromscratch.org/lfs/downloads/development/LFS-BOOK-r12.3-98-NOCHUNKS.html
You are probably approaching this from the wrong angle. Linux, and computers in general, are tools. Figure out what you want to use it for, and then do it. One example would be to build a homelab with jellyfin and nextcloud.
On the path to that goal, you’ll find problems and tasks for which there exists very nice structured resources. For example, you might want some security, a perfect opportunity to read a book on networking and firewalls.
I disagree. Sometime, a structured approach allows to discover things you don't even know exist
This is a perfect valid approach though ! My first few years in self-hosting I learned soooo many things: CLI, Shell, scripting, networking, containers...
Doing my own AV1 encodes I learned alot about audio/video processing, metadata, ffmpeg, av1an....
Maybe not as structured as OP asked for, but there's way to much to learn in the OS world that a whole life is not sufficient to have it all ! However, following that said goal, you will learn alot arround other stuff and improve overall.
If your goal is to learn the Linux system and all the nitty gritty arround it, good luck :/ it takes more than 1 person to make an OS work, so understanding all the bells and whistle is just crazy IMO !
Honestly, this is the best way to learn almost anything: Start a project. When you don't know how to do something, look it up. Repeat until you die.
Highly recommend this wargame challenge from over the wire. It makes you think and also feels like hacking. Youre just using linux commands to find passwords but the skills transfer to heaps of usage across systems. It can be a little beginner-ish though.
https://www.lpi.org/our-certifications/lpic-1-overview/
Free PDFs, touches on the topics and actually shows you the commands, gives you exercises + further info. It will never be an end-all-be-all but it's a start if you're looking to learn something. It really all depends on what you're trying to get out of it I figure. If you're trying to be a sysadmin, then everybody else will have a different answer.