Effective Shell is a book for anyone who uses a shell regularly. Whether you are a programmer, data scientist, reliability engineer, or just an enthusiast who loves to know how computers work, this is the book for you.
Each chapter is designed to be independent, showing a technique or idea which will help make you more effective.
Each section also ends with an ‘interlude’, which gives a little bit of historic or interesting information about the shell, you can also skip these if you want!
Every section and chapter is detailed below, use this table to decide where to start!
Section 0: For Beginners
This section is for complete beginners. If you are not sure whether this book is for you, what a shell is, or how to get started, start here!
Section 1: Core Skills
This section covers what I think to be the most fundamental skills which are critical for being effective when using the shell. If you are pro, you might want to skim this section to see if there's anything which is new for you.
Section 2: Beyond the Basics
This contains more advanced topics, which still work as ‘standalone’ chapters and don't require any understanding of earlier sections of the book.
Section 3: Pipelines and your Toolkit
This section starts by giving a detailed description of how ‘pipelines’ work. This is essential reading for the rest of the section. The later chapters detail some of the most key tools and programs you'll use in the shell. A basic understanding of each of the tool could be really useful in improving your experience.
Section 4: Customising and Managing Your Shell
In this section we look at how to customise the shell to your own needs and preferences. We also look at how to control these customisations and maintain them over time.
Section 5: Shell Programming
Even though this is not a dedicated book for programming in the shell, it makes sense to at least cover the key programming skills which you can use regularly to improve how you work with the shell.
Section 6: Next Steps
The final section suggests useful areas to look into once you've finished the book, recommends some other excellent reading material, and how to continue your learning. It also discusses the future of the shell and what is changing in this space.
This entire book is currently open source - feel free to propose changes, and get involved in the discussions at the bottom of each page!