
In this article, I’ve picked the best free and paid online Bash courses, a scripting language and a shell that allows developers to save lots of time and energy by writing scripts to automate repetitive computer tasks. Most of the courses are free and beginner friendly!
Here are my top picks. Click on one to skip to the course details:
What is Bash?
To understand what Bash does, we first need to know what a shell and terminal is.
A shell is an interface between the user and the operating system that interprets the commands given by the user for the operating system to perform. Meanwhile, the terminal is an interactive program which prompts the user to enter a command for the shell to interpret.
Bash (which is an acronym for Bourne-Again Shell) is both a scripting language and a shell. It is the de facto standard shell for most Linux distributions. You communicate with the shell by writing Bash commands interactively to the terminal or executing Bash scripts.
But why use Bash in the command-line when your GUI can do most work? Bash is very versatile. It allows you to take full advantage of the low-level functionality of your computer. Many repetitive computer tasks like applying configurations, manipulating files, generating build artifacts, and various other DevOps-related activities can be automated with Bash scripts, saving a lot of time. Additionally, you can schedule Bash scripts to run at a certain time or event which means that you don’t even have to lift a finger to run them!
It is for these reasons that Bash is the 7th most popular language according to the Stack Overflow Developer Survey. People who use Bash are often paid $81K+ yearly and many have testified to the time saved thanks to automation. So if you’re not already using Bash, you’ll find that the time saved automating tasks will greatly outweigh the time spent learning it.
Best Courses Guides Methodology
I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database with 100K online courses and 200K+ reviews. Then, I made a preliminary selection of 60+ Bash courses by rating, reviews, and bookmarks.
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
- Select: Well-made courses were picked if they presented valuable and engaging content and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, affordability, release date, ratings and enrollments.
Course Ranking Statistics
Here are some aggregate stats about the ranking:
- All of the courses in this ranking except for 3 are free or free-to-audit.
- All of the courses except for one are friendly to programming beginners.
- Meanwhile, two of the courses require familiarity with the command-line.
- This ranking has a diverse set of providers, ranging from Coursera to Codecademy to Udemy and other independents.
- Around 1K people are following Bash Courses on Class Central.
Without further ado, let’s go through the top picks.
My first pick for the best Bash course is Bash Scripting and System Configuration by Codio on Coursera.
In this free-to-audit course, you’ll gain experience writing bash scripts and working with the command line through hands-on practice on an interactive virtual Ubuntu system.
No scripting experience required!
What You’ll Learn
The modules in this course cover scripting basics (e.g. control structures), advanced scripting (e.g. regular expressions), git version control, and system configuration (e.g. installing and updating).
You’ll begin the course by learning the scripting basics. This will include learning about the commands to navigate the terminal as well as some programming concepts like variables, control structures, and the likes. Additionally, you’ll see how bash is used in the real world to automate repetitive tasks by taking a look at some common script utilities.
Next, you’ll delve deeper into advanced scripting. You’ll learn how to locate and perform actions on files with globbing, use regular expressions to filter and search within file contents, and schedule scripts so that they can run at a specific time without you having to lift a finger!
Finally, the last two weeks of the course teaches you about the Git version control system, package management system, and how they tie in with bash.
How You’ll Learn
This course is 4 weeks long with 11 hours of material. You’ll learn by reading through and completing the interactive assignments that contain short explanations, useful diagrams, and runnable script examples. Assignments range from multiple choice to fill-in-the-blank and coding exercises with instant feedback.
Institution | Codio |
Provider | Coursera |
Instructor | Chalece DeLaCoudray |
Level | Beginner |
Workload | 11 hours |
Certificate | Paid |
Fun Facts
- The course has 95 bookmarks on Class Central.
- This course is part of the Unix and Bash for Beginners Specialization. It is intended to teach people without technical experience bash scripting skills and other Unix tools to help them perform basic system administrator tasks.
- This course is #1 in Class Central’s Bash topic.
If you’re interested in this course, you can find more information about the course and how to enroll here.
My second pick for the best course to learn Bash is BashGuide from wooledge.org.
This course is a free guide that aims to teach beginners how to work with Bash while following the best Bash-writing practices and techniques. No advanced knowledge is required.
Familiarity with the fundamental Unix tool set or programming languages is helpful, but not necessary.
What You’ll Learn
The course begins by going through the list of the different types of Bash commands you can give to the shell. You’ll also learn how to give arguments correctly, learn what special characters are evaluated differently by Bash, and finally end with a small section on writing scripts.
Next, you’ll learn about parameters that are named space in memory you can use to retrieve or store information. They come in two varieties; variables and special parameters. Combined with other programming concepts like conditionals, loops, and arrays, you can write very powerful automation scripts with these.
Another awesome feature of bash is pattern matching. You’ll learn how to use globs and regular expressions to get a text of any form you want. Furthermore, you’ll learn about how to get input from a user or a file and output a result. In the last few sections, you’ll cover compound commands, job controls, and the best practices when working with Bash and the shell.
How You’ll Learn
This course consists of 11 sections. You’ll learn by reading through each section and repeating the examples in your terminal.
Website | mywiki.wooledge.org |
Instructor | Maarten Billemont (Lhunath) and GreyCat |
Level | Beginner |
Workload | N/A |
Certificate | None |
Fun Facts
- A new version of this guide is currently in the works.
- If there’s anything in the guide that is confusing, you can report the text to the #bash channel on Libera Chat so that it can be revised.
If you’re interested in this course, you can find more information about the course and how to enroll here.
My #3 pick for the best Bash course is Datacamp’s Introduction to Bash Scripting.
This paid Datacamp course is perfect for data scientists or analysts looking to leverage the power of Bash script for streamlining their data pipeline workflow. By the end of the interactive course, you’ll be able to write Bash scripts to automate any repetitive task.
You should be familiar with the command line and the shell prior to taking this course.
What You’ll Learn
First, you’ll be introduced to the basic Bash script structures by creating command-line pipelines that you’ll then transform into Bash scripts. Through practice, you’ll become familiar with standard streams, inputting arguments, and outputting results.
Then, you’ll master variables, the bread and butter of Bash scripts. Along with other data structures like arrays, you’ll learn how to use them in conjunction with control statements like loops and conditionals in order to write more advanced Bash scripts.
The final section of the course will have you use what you’ve learned so far and create your own Bash functions to help automate frequent tasks. You’ll also know how to schedule these scripts so that they’ll run automatically and do everything for you!
How You’ll Learn
This course is 4 hours long. You’ll learn by watching the lively lecture videos, completing the interactive exercises in DataCamp’s browser-based programming environment, and answering the MCQs.
Provider | DataCamp |
Instructor | Alex Scriven |
Level | Beginner |
Workload | 4 hours |
Enrollments | 21K |
Certificate | Paid |
Fun Facts
- Alex is a Senior Data Scientist working for Atlassian in Sydney, Australia. He has built and delivered several Masters-level courses in machine learning and deep learning whilst researching applications of machine learning and data science in industry.
- Datacamp is an online learning platform that focuses on, as you guess it, data. You can find various data science, data engineering, and data analytics courses here.
If you’re interested in this course, you can find more information about the course and how to enroll here.
MIT’s Missing Semester classes aim to introduce programmers to useful tools to help them in everyday tasks, one of them being the shell.
In this free lecture, you’ll learn all about the shell and how to use bash to automate repetitive tasks. The lecturers in this course take their time to explain and demonstrate the versatility of Bash scripts.
No prior programming experience is required to take this course.
What You’ll Learn
You’ll begin this course with a swift introduction to the shell as an interface between the user and the computer, and bash as the language the shell uses to communicate with the computer.
First, you’ll learn how to navigate the shell from one directory to another and also create and view files. Then, you’ll see how you can connect the input and output of a program from one to another. This will be elaborated upon in another lecture on data wrangling. Finally, you’ll be given various examples of how Bash can be used to configure the computer, like changing the brightness of the screen!
How You’ll Learn
This lecture is 1 hour long. You’ll learn by watching that, reading the article, and practicing with your own shell.
Institution | Massachusetts Institute of Technology |
Provider | YouTube |
Instructor | Anish Athalye, Jon Gjengset, and Jose Javier Gonzalez Ortiz |
Level | Beginner |
Workload | 1 hour |
Views | 536K |
Likes | 10K |
Certificate | None |
Fun Facts
- This lecture is from a larger series called The Missing Semester of Your CS Education. It introduces computer science students to important concepts and tools that normally wouldn’t be covered in the typical CS syllabus.
- The next couple of lectures also cover Bash and shell scripting, with one being on Shell Tools and Scripting, another on Data Wrangling, and a third on Command-line Environment.
If you’re interested in this lecture, you can find more information about the it here.
This free interactive course, learnyoubash, teaches you how to use the terminal and write your first Bash script. You’ll learn the terminal by interacting directly with the terminal, and learn Bash by writing Bash. Everything in this course is hands-on!
No prior experience with programming is required to take this course.
What You’ll Learn
The first exercise in this course introduces you to Bash and the terminal by having you print “Hello, World!” to the terminal. Then, you’ll see how Bash is a scripting language by learning how to assign values to variables. Afterward, you’ll write a Bash script to help you understand how positional parameters work as well as another file for arrays.
Expansions are a mechanism to help with arithmetic operations and command executions, and you’ll learn how handy they can be. Also, you’ll learn about streams and pipes which are used everywhere, and understand how to redirect streams from one file to another. You’ll also wrap your head around two conditional statements, if and case, and learn when to use one over another, whereupon you’ll follow this up with loops. Lastly, you’ll code functions into your Bash scripts and then get to know the debugging tools Bash provides.
How You’ll Learn
This course consists of 11 tutorials. Each tutorial is accompanied by text to help you understand what to do. You’ll learn by completing the Bash exercises in the tutorials.
Provider | GitHub |
Instructor | Denys Dovhan |
Level | Beginner |
Workload | N/A |
Certificate | None |
Fun Facts
- Denys Dovhan is a Ukrainian front-end developer at Wix. He makes open source stuff and is interested in geography and history.
- This interactive course is based on the Bash Handbook, another fantastic guide on Bash.
- This course is also available in Ukrainian.
If you’re interested in this course, you can find more information about the course here.
Exercism is a free online coding platform with lots of coding exercises for you to practice your Bash writing skills.
Not only do the exercises have instant automated feedback upon submission, but your code can also be checked by a human mentor upon request. This means that you can get expert feedback from someone on how to improve your code, which is amazing for learning!
Programmers of all levels of experience can join this platform, as exercises range from easy to challenging.
What You’ll Learn
All exercises are unlocked from the start, and you’ll be presented with exercises of easy, medium, and hard difficulty.
For easy exercises, you’ll be given tasks like converting color codes used on resistors to a human-readable label, computing the prime factors of a given natural number, and determining if a word or phrase is an isogram.
Medium difficulty exercise will have you implement variable length quantity encoding and decoding, calculate the date of meetups, and determine the nth prime of a number n.
The hard exercises meanwhile consist of finding the change to be given using the least number of coins, and the knapsack problem.
How You’ll Learn
This course is self-paced, so you can take all the time you need to complete the 89+ hands-on programming exercises. Each exercise comes with automatic analysis of your code as well as an opportunity to request personal mentoring to help you better understand your code’s strengths and flaws.
Provider | Exercism |
Level | All levels |
Workload | N/A |
Enrollments | 37K |
Certificate | None |
Fun Facts
- Exercism provides exercises on 50+ programming languages like Python, Kotlin, F#, and even WebAssembly.
- Their mission is to help everyone get really good at programming, regardless of their background, share the love of programming, and help people upskill as part of their upward social mobility.
- Close to 50 people have contributed towards the Bash syllabus and exercises, with 500+ mentors available at the time of writing.
If you’re interested in this course, you can find more information about the course and how to enroll here.
Bash Scripting and Shell Programming by Jason Cannon will teach you how to take complex, tedious tasks and turn them into Bash programs that will save you lots of time while doing real work.
By the end of this course you will be able to create bash scripts with ease. You’ll learn how to take tedious and repetitive tasks and turn them into programs that will save you time and simplify your life on Linux, Unix, or MAC systems.
No prior experience with the shell or command line is needed to take this course.
What You’ll Learn
The course gets right into the details by teaching you the basics of writing shell scripts. For example, you’ll learn about the shebang, creating and using variables, and using return codes and exit statuses. After that, you’ll learn about programming concepts like the ‘if’ statements, and then learn how to simplify complex ‘if’ statements with case statements.
You’ll learn how to accept command line arguments with your script, process them, and then write an output. By writing functions in your scripts, you can easily implement logging inside your shell script to track what occurs during the runtime of your program.
In the final parts of the course, you’ll learn how to use wildcards in conjunction with things like for loops. You’ll even learn some debugging tips and some common errors people make when writing shell scripts and how to avoid those. You’ll end the course by exploring some specific Bash shell options that you can use to make your life easier.
How You’ll Learn
This course is 2–3 hours long. You’ll learn by watching the lecture videos and attempting the MCQ and coding exercises.
Provider | Udemy |
Instructor | Jason Cannon |
Level | Beginner |
Workload | 2–3 hours |
Enrollments | 72K |
Rating | 4.4 / 5.0 (14K) |
Certificate | Paid |
Fun Facts
- Jason is the founder of the Linux Training Academy. He started his career as a Unix and Linux System Engineer in 1999 and has since utilized his Linux skills at companies such as Xerox, UPS, Hewlett-Packard, and Amazon. Additionally, he has acted as a technical consultant and independent contractor for small businesses and Fortune 500 companies.
- He is also the author of the books “Linux for Beginners,” “Command Line Kung Fu,” and “Docker: A Project-Based Approach to Learning.”
If you’re interested in this course, you can find more information about the course and how to enroll here.
If you’re brand new to the Linux command line, this free course is a fantastic way to learn by doing. You’ll become familiar with the command line by writing one-liner Bash commands to accomplish the tasks set by the course.
No prior knowledge of command line or bash is required to take this course.
What You’ll Learn
There are three sections to this course.
The first section is Command Challenge, where you’ll learn the basic commands needed to navigate the terminal and do basic stuff. Some of the things you’ll learn are echoing, grepping, pipelining, concatenating, basic script writing, and a lot of useful commands for automation.
Another section is called ‘Oops I deleted my bin/ dir’, where you are told that a process on a computer has managed to delete all of the files in the bin directory and your job is to recover what you had using the command line. Finally, there is also a 12 days of Christmas themed challenge.
How You’ll Learn
There are around 61 challenges for you to complete (including the bonus challenges in oops and 12daysofchristmas).
Website | cmdchallenge.com |
Instructor | John Jarvis |
Level | Beginner |
Workload | N/A |
Certificate | None |
Fun Facts
If you’re interested in this course, you can find more information about the course here.
In this paid Codecademy course, you’ll learn how to cut down on work-time massively by automating your workflow with bash scripts.
Before taking this course, you should have learned the Command Line.
What You’ll Learn
Bash is a scripting language, but that doesn’t mean that it lacks common programming concepts. You’ll begin the course by learning about variables, conditionals, and loops. Then, you’ll figure out how to prompt the user to input a value and also have the script access data in external files. After configuring your bash script, you’ll want to create an alias so that you call the alias instead of calling the full name of the file. Finally, you’ll end the course by reviewing all the useful concepts you’ve learned.
How You’ll Learn
This course is 1 hour long. You’ll learn by going through the interactive course articles and completing the hands-on coding exercises. You’ll also write a build script in Bash as your portfolio project to solidify your skills. Upon completion, you’ll earn a certificate.
Provider | Codecademy |
Level | Intermediate |
Workload | 1 hour |
Certificate | Paid |
Fun Facts
- Codecademy was co-founded by Zach Sims and Ryan Bubinski, with the goal of giving anyone in the world the ability to learn the skills they’d need to succeed in the 21st century.
- They offer free courses in 12 different programming languages, the most popular ones being Python, Java, Ruby, C++, C#, and Swift.
If you’re interested in this course, you can find more information about the course and how to enroll here.
Source link