Skip to main content

Recommended Reading

Work In Progress

This section is being expanded regularly, so check back often to find more recommendations!

Some great books and articles for specific topics are listed below.

The Future of the Shell

General Shell Skills

Fantastic Books

Each of these books would make a great addition to your bookshelf if you are a technologist. Many of these books I have read multiple times and still go back to as a reference.

Book Cover Image: Applied Cryptography

Applied Cryptography: Protocols, Algorithms, and Source Code in C - Bruce Schneier

This is the absolute best book around on cryptography - from concepts, protocols all the way to advanced topics. There are code examples in C that allow you to really see how these concepts work in practice. This is an excellent book for someone who wants to learn about cryptography but also have the option to go deep into the topics that interest them.

Book Cover Image: Pro Git

Pro Git - Scott Chacon and Ben Straub

Superb book on Git, that is essential reading for the new user, but also goes into great depth on topics that will be relevant for expert readers. Should be on everyone's bookshelf.

Shell Scripting by Jason Cannon

Short and sweet, this is a good book for absolute shell scripting beginners.

Wicked Cool Shell Scripts - Dave Taylor & Brandon Perry

Ideal for systems administrators and power users who can benefit from automating processes across many platforms. This book contains a lot of tips on how to standardise the behaviour of programs across Linux and Unix systems. If you find yourself regularly shell scripting and want to start to build a library of your own scripts to run across machines, this is a great book to read. It will be particularly useful for anyone who faces challenges on incompatibilities and inconsistencies between programs on different systems.

Practical Vim: Edit Text at the Speed of Thought, Drew Niel

Absolutely the best book I've read on Vim, perfect for users of all levels. Written by Drew Niel, who is the author of the amazing Vimcasts series.

Joshua Levy - The Art of the Command Line

This is a wonderful repository, which aims to help you "Master the command line, in one page". This page is full of useful resources and is a superb reference for users from novice all the way to advanced!

Essential Online Resources

These resources are available online and are particularly useful.

Command Line Interface Guidelines

An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.

This is an excellent online resource that describes the principles, but also practical patterns, that you can use to design CLI programs that interface well to other programs and make sense to human operators. This is great reading if you are building any kind of CLI app.

https://clig.dev/

The Missing Semester of Your CS Education

The introduction in the site says it better than I could!

Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there's one critical subject that's rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!

https://missing.csail.mit.edu/

Thanks to Lennart R. Wilke for sharing this with me!

Maarten Billemont - Bash Guide

This is an excellent and very detailed resource on bash. It goes into a lot of detail on how things are implemented and is a great resource to find all of the low level details you might be interested in. There is also a more modern version being currently drafted at https://guide.bash.academy/.

Great Books

Great Videos

The UNIX Operating System

This is a fascinating video from the late 60s - you might be amazed at how much of the stuff you see here is still fundamental to how we work with computers today. The shell, pipelines, the file system and more:

Screenshot: The Unix Operating System

The Mother of All Demos

Another fascinating video from the late 60s - see the mouse, hypertext, word processing and more:

Screenshot: The Mother of all Demos

Where Grep Came From - Computerphile

Professor Brian Kerninghan explains where the grep tool came from:

Screenshot: YouTube Where Grep Came From

Advanced

Research

The following articles and links were particularly useful when writing this book:

Great source of shell tricks and tips:

TODO

Books I'm reading as part of the research for this book.