Bash

Join the Bash Track
Bash is a Unix command interpreter, for which plaintext files of commands can be made to create scripts. It's a powerful and concise way of getting stuff done!
Join the Bash Track
Track mentors

11 Mentors

Our mentors are friendly, experienced Bash developers who will help teach you new techniques and tricks.
Track students

3,886 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

29 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Bash

#!/bin/bash

echo "Hello, World!"

Bash is the language that you will learn to love!

Many of your everyday computer tasks can be done using the concise scripts it can produce. You will soon learn that while most things can be done through a Graphical User Interface, it can actually be vastly faster to use this powerful language! The command interpreter typically runs in a text window, where users may input commands (operations may also come from some files, also known as Bash scripts).

More formally, Bash (an acronym for Bourne-again shell, a pun around the Bourne shell and the term "born-again") is a Unix command interpreter. Offering a number of improvements over several other shells (Bash has some useful functionality in regards to command history, job control and command line editing).

A really good way to think about Bash is the following:

Although most users think of the shell as an interactive command interpreter, it is really a programming language in which each statement runs a command. Because it must satisfy both the interactive and programming aspects of command execution, it is a strange language, shaped as much by history as by design. —- Brian Kernighan & Rob Pike

cite: Kernighan, Brian W.; Pike, Rob (1984). The UNIX Programming Environment. Englewood Cliffs: Prentice-Hall. ISBN 0-13-937699-2.

Though it was first released several decades ago after being written by Brian Fox of the Free Software Foundation, Bash is still used across the world every day! From automation to stitching a project together, the language is still as versatile as it ever was. Another benefit of the language's age is the rich documentation you'll find surrounding it. If you're ever stuck and don't know exactly how to implement an exercise, a great place to start is the built-in help, available through the use of info bash or man bash.

This track is to help you gain some experience in this wonderful scripting language.

Happy Bash'ing

Join the Bash track

Exercism is a great website

Exercism is a great website where I was able to have some very interesting challenges.

Relaxed. Encouraging. Supportive.

Meet the Bash Track mentors

Once you join the Bash language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Noah A

Noah A GitHub

I am extremely fond of *nix systems, especially GNU + Linux (the combined OS). BASH lets me truly unlock my system's potential. As a student of BASH myself, I look to learn and share, so you can 'unlock' your system, too.
Avatar of Björn Lindström

Björn Lindström Elektrubadur

I've used various Unixes on the desktop for around 20 years, and now work as a systems engineer, mainly with Linux systems. Along the way I've picked up bit of shell script.
Avatar of Andrew Stoehr

Andrew Stoehr https://github.com/astoehr

Professional Software Engineer. Whenever I have something I need to automate, Bash is one of my go-tos - its flexibility and interesting syntax make it one of my favorite languages to write. Having direct access to command-line utilities within scripts makes Bash appealing by itself, but the language is so much more than just that. I look forward to helping others learn it!
Avatar of Alex Baranowski

Alex Baranowski https://github.com/AlexBaranowski

RHCE currently aiming for RHCA. I'm spending my best years in a console, so I know a thing or two about Linux :). Enjoy working for a small company where I automate the process of making Linux distro. Some folks call me DevOps.
Avatar of Ryan Boris

Ryan Boris GitHub

When you can remember a time when the only way to interact with a computer was via the CLI, you learn to love it and quite frankly I do love it. I have been using both bash style and zsh style shells on Mac and various Linux distros for almost a decade. Prior to my current career as a MEAN stack developer, I was an undergraduate professor of chemistry and gained a tremendous amount of experience with bash shell scripts to automate and run analytical chemistry based lab instrumentation. I love to learn form others and help others learn and would love to get you bash obsessed!
Avatar of Ryan Palo

Ryan Palo https://github.com/rpalo

I don't know why I love Bash. It's arcane, and hard to read, and not intuitive. But I love it, because it gets things done and makes me feel like a wizard. And I want to help you love it too!
Fun. Challenging. Interesting

Community-sourced Bash exercises

These are a few of the 29 exercises on the Bash track. You can see all the exercises here.

Difference Of Squares
easy
control flow conditionals
control flow loops
math
Reverse String
easy
strings
Grains
easy
control flow conditionals
input validation
integers
math
Anagram
easy
control flow conditionals
control flow loops
string transformation
strings
Diamond
medium
loops
strings
string transformation
Two Fer
easy
control flow conditionals
strings
text formatting
Passionate. Knowledgeable. Creative.

Meet the Bash Track maintainers

The Bash Maintainers are the brains behind the Bash Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Sam Warner

Sam Warner

I am a software developer and consultant working for Black Pepper Software, a software company based in Leamington Spa, England. I'm a recent Computer Science graduate from the University of Warwick, and love all things to do with computers!
Avatar of Guy Gastineau

Guy Gastineau

I really love Linux and Bash! I think the only reason I use a window manager is for chrome/firefox. Every other open window on my machine is a terminal.
Avatar of Mugurel (Bud) Chirica

Mugurel (Bud) Chirica

Full Stack Web Developer (Ruby, JavaScript, DevOps). www.linkedin.com/in/mugurel-teodor-chirica

Get started with the Bash track. As with everything on Exercism, it's 100% free!

Join the Bash Track