Settings

Theme

A Book on Linux

30 points by NCaffer 2 years ago · 21 comments · 1 min read


What's the best book for beginners to learn Linux?

frithsun 2 years ago

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.

  • NegativeLatency 2 years ago

    Similar but more historical, The Unix Programming Environment is a fun read, I learned a lot from it, and it's nice to have some historical context.

  • nocman 2 years ago

    >The Linux kernel doesn't matter.

    While I agree on the importance of "the history, philosophy, and purpose of the unix environment", saying that the Linux kernel doesn't matter seems a bit harsh at best. It seems to me that the Linux kernel is the most successful Unix-like kernel in the history of computing. It certainly matters for its ubiquity alone.

thaumiel 2 years ago

I have found that How Linux Works, 3rd Edition from No Starch Press is a pretty good book talking about linux for beginners.

  • aquova 2 years ago

    I second this. A lot of books are either directed to complete beginners, stuff like how to update packages and use common applications, or directed toward kernel developers. How Linux Works covers useful items that will serve more hands on users well.

coldtea 2 years ago

Start here: https://web.mit.edu/~simsong/www/ugh.pdf

abdullahkhalids 2 years ago

Linux From Scratch [1] calls itself a collection of book.

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

jovial_cavalier 2 years ago

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.

  • tripleo1 2 years ago

    1. man2html

    and 2. i think it's gnome devhelp.

    there's an app too.

    it's too bad distributions themselves promote googling everything.

trod123 2 years ago

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 2 years ago

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 2 years ago

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 2 years ago

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 2 years ago

I have a list of learning resources for CLI tools and shell scripting here: https://learnbyexample.github.io/curated_resources/linux_cli...

p1esk 2 years ago

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).

NCafferOP 2 years ago

Thank you for your recommendations! You’ve been very helpful.

johnthescott 2 years ago

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 2 years ago

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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection