NCaffer
101d ago
30
20
frithsun
Unix Power Tools

The Linux kernel doesn't matter. What matters is understanding the history, philosophy, and purpose of the unix environment.

You needn't become a religious zealot committed to the unix philosophy, but if you don't take the time to understand it, you'll never get the most out of the environment.

thaumiel
I have found that How Linux Works, 3rd Edition from No Starch Press is a pretty good book talking about linux for beginners.
coldtea
abdullahkhalids
Linux From Scratch [1] calls itself a collection of book.

[1] https://www.linuxfromscratch.org/

jovial_cavalier
The trouble is that things change too quickly for there to be a specific tome that everyone agrees is gospel. I think the closest you will get to gospel in this space are classic books like K&R C, which have very little to do with Linux per se.

Also, a "book on linux" is going to look very different if it's based on Debian as opposed to e.g. NixOS. Linux distros come in all shapes and sizes and no matter what level you're operating on (just using the GUI, light sysadmin, deep systems programming, down to kernel hacking), they may appear as totally different paradigms.

I would recommend simply daily driving Linux. If you're still using another operating system, ween yourself off of that. Additionally, there are a bunch of obvious projects that are low hanging fruit for just getting to grips with Linux. Want a personal website? Spin up a VPS or a cheap laptop and build it from scratch. Set up your own personal email. Get certbot running. Write a simple server in C that can do request/response of TCP. Write an i2c driver for some random micro you have lying around. Whatever you are interested in making/doing, just go do it.

Resist the urge to google everything. `man` has more information than you think it does.

trod123
There is no best book. The general recommendations vary depending on your background knowledge.

A very basic starting point would be linuxjourney.com.

It is also important to be aware that there are no guarantees that programs provide output that maintains determinism. This is important because computation often fundamentally breaks with violations of determinism.

ldd for example has several determinism errors in its output which breaks the required 1:1 unique input to unique output map property, as a result piping it to any program will result in non-deterministic outputs that break automation. * Note: PAX ended up fixing this properly in their repo package back in 2018 iirc, the ldd maintainers never accepted the changes upstream and its unfixed to this day.

Lower intermediate might be RHCSA material and tearing down existing distros by package and identifying functional blocks and implementation/integration details.

LFS is more upper intermediate, and requires some background knowledge of using freestanding code and their relevant toolchains, and common problems you might face in software compilation (i.e. circular dependencies, first/second pass libstd++).

arh68
While not a book per se, I learned a lot from the Gentoo Wiki. Trial and error could get a determined beginner through a stage 3 install, I think.

[1] https://wiki.gentoo.org/wiki/Handbook:AMD64

jjice
Depends on if you mean Linux internals, or working with Linux in general. In the case of the latter, I really liked "Unix and Linux System Administration Handbook". It's a monster sitting at just under 1200 pages (for the fifth edition) and covers a bit of everything from a user of a Unix OS's perspective. The way the chapters are broken out, you can pick and choose what you care about.

The modern editions of this book are primarily focused on Linux with some side notes for the BSDs.

LargoLasskhyfv
Maybe https://www.debian.org/doc/manuals/debian-handbook/

and/or https://debian-handbook.info/ ?

Which obviously is specific to Debian, but up date.

Debian in itself is an acceptable distro, anything that's out there, exists for Debian.

asicsp
I have a list of learning resources for CLI tools and shell scripting here: https://learnbyexample.github.io/curated_resources/linux_cli...
p1esk
This was the book that explained everything I needed to know about Linux with very little noise: Beginning the Linux Command Line, by Sander van Vugt.

Today I would heavily supplement it with answers from GTP4o (or perhaps Sonnet 3.5).

NCaffer
Thank you for your recommendations! You’ve been very helpful.
johnthescott
back in the day, long before linux/gnu existed, i learned quite a bit on the unix philosophy from "The Unix Programming Environment" by Rob Pike and Brian Kernighan.
brudgers
In the long run, I've learned the most important things from just using Linux, but I used books when starting and occasionally now.

For me, it was Linux in a Nutshell (942 pages in the current edition) because I wanted a reference made of paper instead of pixels.

Later for deep background, Design of the Linux Operating System https://archive.org/details/DesignUNIXOperatingSystem but I picked up an used print copy for <$10.

Those were the best books for me. You are not me. Good luck.