Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time


Release Please Version Badge Creative Commons BY-NC-SA

Text, samples and references for my 'Effective Shell' series. This website is hosted at


This repository contains all of the content for the Effective Shell online book.

Installing the Samples

You can install the samples into your ~/effective-shell folder with this command:

curl | sh

Or can also manually download them using from any of these locations:


I tend to use the following hashtags when sharing:

#effectiveshell #shell #linux #bash #devops #hacking #coding #programming

The Pitch

This is not a book about Shell Programming. There are many excellent Shell Programming books (see below). This is about general terminal and shell skills which will make you effective with many day to day tasks. Some shell programming is covered, but this is primarily a book about how to work more effectively with command line interfaces and shells in general.

Possible titles:

Darkscreen: 30 ways to use shells and terminals to be more effective developer or operator.
Effective Shell: 30 ways to use shells and terminals to be more effective.
Command the Shell: 30 ways to be more effective with software.


Books which I've found exciting, which I think could be examples of how this book might be developed:

The Website

The content in this repository is built into a static site available at This is done using Hugo.

This section contains information on how to built, use and edit the site. To help you quickly edit the site, some tips are below:

Building the Website

This website is built with Hugo. It is very easy to setup and run locally.

To setup dependencies, run:

make setup

To serve the site locally, run:

make serve

To build the site, run:

make build

The built site is generated at ./website/public.

Note that the effective-shell-playground folder is automatically zipped up and added to the website, meaning it can be downloaded directly from:

Updating the Theme

The site uses the theme, which is a fork of alex-shpak.


The version of the site and the code is defined in the version.txt file. This makes it reasonably straightforward to script actions which require the version.

Releasing in managed via Release Please in the release-please.yaml workflow file.

Copyright & Licensing

All content is Copyright (©) Dave Kerr. Please get in touch by opening an issue if you have questions on copyright or licensing.

Creative Commons BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.


Thanks to the following people who have helped with reviews, comments, suggestions.

Andrew Bestbier, Thomas Neumann, Tam Nguyen, Rahul Maliakkal, Peter Mondlock, Samantha Baldwin