Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dwmkerr/effective-shell

Text, samples and website for my 'Effective Shell' series.
https://github.com/dwmkerr/effective-shell

bash coding devops effective-shell hacking linux programming shell terminal

Last synced: 6 days ago
JSON representation

Text, samples and website for my 'Effective Shell' series.

Awesome Lists containing this project

README

        

# effective-shell

[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-)

[![Release Please](https://github.com/dwmkerr/effective-shell/actions/workflows/release-please.yaml/badge.svg)](https://github.com/dwmkerr/effective-shell/actions/workflows/release-please.yaml) ![Version Badge](https://img.shields.io/github/v/tag/dwmkerr/effective-shell?label=version) [![Creative Commons BY-NC-SA](https://i.creativecommons.org/l/by-nc-sa/3.0/80x15.png)](http://creativecommons.org/licenses/by-nc-sa/3.0/)

Text, samples and references for my 'Effective Shell' series. This website is hosted at [effective-shell.com](https://effective-shell.com).

If you find this book useful, please do consider [sponsoring me](https://github.com/sponsors/dwmkerr) to help support my open-source work!

* [Introduction](#introduction)
* [Installing the Samples](#installing-the-samples)
* [The Website](#the-website)
* [Building the Website](#building-the-website)
* [Custom Components](#custom-components)
* [Versioning](#versioning)
* [Contributing](#contributing)
* [Copyright & Licensing](#copyright--licensing)
* [ASCII Terminal Recordings](#ascii-terminal-recordings)
* [Thanks!](#thanks)
* [Contributors ✨](#contributors-)

## Introduction

This repository contains all of the content for the [Effective Shell](https://effective-shell.com/) online book.

## Installing the Samples

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

```sh
curl effective.sh | sh
```

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

- [https://effective-shell.com/downloads/effective-shell-samples.zip](https://effective-shell.com/downloads/effective-shell-samples.zip)
- [https://effective-shell.com/downloads/effective-shell-samples.tar.gz](https://effective-shell.com/downloads/effective-shell-samples.tar.gz)

The one-line shell installer is hosted at [github.com/dwmkerr/effective-shell-installer](https://github.com/dwmkerr/effective-shell-installer)

## The Website

The content in this repository is built into a static site available at [effective-shell.com](https://effective-shell.com). This site is generated using [Docusaurus](https://docusaurus.io).

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

- The book content is at [./docs/](./docs/)
- The menu structure is defined at [sidebars.js](sidebars.js).

### Building the Website

To setup dependencies, run:

```bash
make setup
```

To test that TypeScript types compile, run:

```bash
make typescript-check
```

To serve the site locally, run:

```bash
make serve
```

To build the site, run:

```bash
make build
```

The built site is generated at `./build`.

Note that the [`samples`](./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`](./package.json) file.

Releasing in managed via [Release Please](https://github.com/googleapis/release-please) in the [`release-please.yaml`](./.github/workflows/release-please.yaml) workflow file.

If you need to manually trigger a release, run:

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

## Contributing

Please carefully read the [Contributing Guide](./.github/contributing.md) 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](https://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)](http://creativecommons.org/licenses/by-nc-sa/3.0/)

This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-nc-sa/3.0/).

## ASCII Terminal Recordings

All terminal recordings used in this project are built using the superb '[asciinema](https://asciinema.org/)' 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](https://stackoverflow.com/users/10248678/oguz-ismail) for helping me understand some of the [nuances of word splitting and filename expansion](https://stackoverflow.com/questions/67648392/how-can-i-confirm-whether-whitespace-or-special-characters-are-escaped-in-a-wild)
- [Josh Timmons](https://github.com/josh-59) for proof-reading and suggesting structural improvements as well as grammar and spelling fixes
- [Joel Schwarzmann](https://github.com/datajoely) for proofing and adding content on the Python code in the 'How to avoid shell scripting' chapter
- [Xiaoyou "Elsie" Jiang](https://github.com/xiaoyou-elsie-jiang) for proof-reading and improvements to Chapter 30

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/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](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!