Author William Shotts has done an amazing job with The Linux Command Line. I’ll admit I’m something of a Linux newbie, but I feel like I have learned so much from reading this book. The text is complex, yet approachable, and teaches lots of handy command line tips without being tied to a specific distro (though there is some brief discussion regarding packaging and package managers). Overall, a lot of useful content, both in using built-in programs and for coding your own shell scripts.
The best part about this book, for me, were the “playground” lessons, where you would create a bunch of dummy files and folders and then perform operations on them. For example, using “touch” to create 10 folders with 100 files in each, with only one short line of code. Or showing how to use “grep” and “ls” to find all programs matching a particular pattern. Practical examples of using pipelines. These are all super useful. So lots of good example material here.
The Linux Command Line clocks in at just over 500 pages, with 36 different chapters, each on a specific topic. The first 10 chapters explain how Linux works (permissions, processes, the environment), and how to use the command line in general (navigating the file tree, manipulating files and folders, redirection, command expansion and quoting). Next it covers package managers, connecting storage, networking, searching, archiving, regular expressions, formatting text, and printing. And the final part covers shell scripting and is a basic programming tutorial as well. A great base of content.
I’ve only read a handful of Linux books so far, but I think I can say this is the best I’ve seen. The text covers very fundamental and core competencies for using Linux, and the language is very approachable for beginners. I feel like I have learned a lot and already I’m more comfortable on the command line. If you are new to Linux, this can be a great way to up your game. Recommended.