Skip to content

dwmkerr/effective-shell

Repository files navigation

effective-shell

All Contributors

Release Please Version Badge Creative Commons BY-NC-SA

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

If you find this book useful, please do consider sponsoring me to help support my open-source work!

Introduction

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 effective.sh | sh

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

The one-line shell installer is hosted at github.com/dwmkerr/effective-shell-installer

The Website

The content in this repository is built into a static site available at effective-shell.com. This site is generated using Docusaurus.

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

To setup dependencies, run:

make setup

To test that TypeScript types compile, run:

make typescript-check

To serve the site locally, run:

make serve

To build the site, run:

make build

The built site is generated at ./build.

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

https://effective-shell.com/downloads/effective-shell-samples.zip
https://effective-shell.com/downloads/effective-shell-samples.tar.gz

Custom Components

Custom Components to support styling are available at:

src/components

There is a live view that can be used to preview each component:

http://localhost:3000/zz-developer-guide/components

Components can be added to global scope, i.e. available in call pages, by adding to the MDXComponents.js swizzled file:

src/theme/MDXComponents.js

Versioning

The version of the site and the code is defined in the package.json file.

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

If you need to manually trigger a release, run:

git commit --allow-empty -m "chore: release 2.0.0" -m "Release-As: 2.0.0"

Contributing

Please carefully read the Contributing Guide before working on changes.

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.

ASCII Terminal Recordings

All terminal recordings used in this project are built using the superb 'asciinema' tool. Many thanks to Marcin Kulik for building such an excellent piece of software.

Thanks!

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

  • Andrew Bestbier, Thomas Neumann, Tam Nguyen, Rahul Maliakkal, Peter Mondlock, Samantha Baldwin, Niklas Schmuecker for the proofing, comments and suggestions
  • Ogus Ismail for helping me understand some of the nuances of word splitting and filename expansion
  • Josh Timmons for proof-reading and suggesting structural improvements as well as grammar and spelling fixes
  • Joel Schwarzmann for proofing and adding content on the Python code in the 'How to avoid shell scripting' chapter
  • Xiaoyou "Elsie" Jiang for proof-reading and improvements to Chapter 30

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Xiaoyou
Xiaoyou "Elsie" Jiang

πŸ“– πŸ‘€
Tobias BΓΌschel
Tobias BΓΌschel

πŸ‘€
Doug Foo
Doug Foo

πŸ“– πŸ‘€
Sallah Kokaina
Sallah Kokaina

πŸ“– πŸ‘€
samhinton88
samhinton88

πŸ“– πŸ‘€
Alex Vinall
Alex Vinall

πŸ“– πŸ‘€
Joseph Knight
Joseph Knight

πŸ“– πŸ‘€
Doug Todd
Doug Todd

πŸ“– πŸ‘€
jdhzzz
jdhzzz

πŸ“– πŸ‘€
valankar
valankar

πŸ“– πŸ‘€
Denpeer
Denpeer

πŸ‘€ πŸ“–
Marek Bogatzki
Marek Bogatzki

πŸ“– πŸ‘€
MWarnecke
MWarnecke

πŸ“– πŸ‘€ πŸ›
Spike
Spike

πŸ‘€ πŸ›
Dong Zhou
Dong Zhou

πŸ‘€ πŸ› πŸ“–
Dror Maman
Dror Maman

πŸ› πŸ“– πŸ‘€
Michael Chui
Michael Chui

πŸ‘€
Saroj Sangphongamphai
Saroj Sangphongamphai

πŸ‘€
Lee Li
Lee Li

πŸ‘€ πŸ› πŸ“–
Lee Li
Lee Li

πŸ›
Trevor Brown
Trevor Brown

πŸ› πŸ‘€
Philipp Frischmuth
Philipp Frischmuth

πŸ‘€

This project follows the all-contributors specification. Contributions of any kind welcome!