This guide is an introduction to basic and advanced concepts of the bash shell.

It teaches both newcomers and long-time users the best, safest and most robust ways of writing powerful bash scripts as well as making efficient and speedy interactive use of the shell.

This guide has gone through several iterations and is the result of a severe lack of consistent, clear and reliable language on the topic on the rest of the Internet as well as the public library or book stores.

Authorship

The primary author and maintainer of this guide is lhunath (Maarten Billemont).

This guide is open source, licensed under Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA). The source code is available at GitHub. Go there to report issues or fork the guide to contribute changes (big or small). To keep up to date with new chapters or improvements to this guide, you could star the GitHub project.

For advice, comments, suggestions, corrections or recommendations, contact lhunath, file an issue or visit the freenode.org #bash community on IRC.

This guide is an active work in progress. New chapters are being written and existing chapters are continuously being updated and improved.

Using this guide, I am sharing my knowledge and expertise with the world freely in the hopes of benefitting you and all others like you. If you've benefitted from the knowledge and experience gained through this guide, consider "giving back" to encourage a society of open access and freedom of information. You can give back by providing feedback on the guide at the GitHub project page, making corrections by hitting the edit buttons on the chapter pages, sharing this guide with any of your friends that have similar interests so that they too may learn as you have, or contributing financially in gratitude for my work, time and effort put into writing and maintaining this guide.

✅ Thanks for your contribution! I would like to pay US $ ₽ £ € C$ A$ for the benefit of my access to this guide:

Exercises

After introducing new practical concepts, the guide offers a set of exercises to allow you to practice your new knowledge. For a summary of all exercises in this guide, see our exercises index.

Chapters