Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Johns Hopkins University

The Unix Workbench

Johns Hopkins University via Coursera


Unix forms a foundation that is often very helpful for accomplishing other goals you might have for you and your computer, whether that goal is running a business, writing a book, curing disease, or creating the next great app. The means to these goals are sometimes carried out by writing software. Software can’t be mined out of the ground, nor can software seeds be planted in spring to harvest by autumn. Software isn’t produced in factories on an assembly line. Software is a hand-made, often bespoke good. If a software developer is an artisan, then Unix is their workbench. Unix provides an essential and simple set of tools in a distraction-free environment. Even if you’re not a software developer learning Unix can open you up to new methods of thinking and novel ways to scale your ideas.

This course is intended for folks who are new to programming and new to Unix-like operating systems like macOS and Linux distributions like Ubuntu. Most of the technologies discussed in this course will be accessed via a command line interface. Command line interfaces can seem alien at first, so this course attempts to draw parallels between using the command line and actions that you would normally take while using your mouse and keyboard. You’ll also learn how to write little pieces of software in a programming language called Bash, which allows you to connect together the tools we’ll discuss. My hope is that by the end of this course you be able to use different Unix tools as if they’re interconnecting Lego bricks.


  • Unix and Command Line Basics
    • This week we'll help you get access to Unix (you may already be using it), and you'll start using the command line. We'll draw parallels between using your mouse and keyboard with your computer's graphics versus only using the command line.
  • Working with Unix
    • Now we'll get into the power of different Unix tools. We'll walk through several scenarios where you could use Unix to perform tasks at a much faster speed than you would be able to normally.
  • Bash Programming
    • During this week we'll unleash the command line's usefulness as a programming language. By the end of this week you'll be writing your own little computer programs that you can use on the command line.
  • Git and GitHub
    • First you'll learn how to use Git, which is like "track changes" for your code and plain text files, but much more powerful. We'll then explore how to use Git with GitHub, a social coding network where you can publish you projects and explore other's code.
  • Nephology
    • Finally we'll set up a cloud computing environment so we can explore how computers communicate with each other using the internet.

Taught by

Sean Kross, Jeff Leek, PhD, Brian Caffo, PhD and Roger D. Peng, PhD


4.5 rating, based on 4 Class Central reviews

4.7 rating at Coursera based on 1320 ratings

Start your review of The Unix Workbench

  • This class is a pretty good intro to using unix tools like bash, makefiles, and git. Generally pretty clear but just a heads up there are no videos explaining the commands just short 30 second videos giving an overview of each week.
    I'd say it's not worth paying for it but it's a good starting project to audit!
  • This is a really good course which will teach you about Bash programming , git, ssh and stuff you would want to learn!

    The exercises are really fun !
  • Nikhil George
    The course notes are well written and gave me the confidence to adopt commandline on the PC (WSL), work with a Linux server and begin using GiTHub on the commnadline, with minimum effort. Not a bad place to start.
  • Anonymous
    This course is of the absolute right length, to get anyone started . Recommended for ABSOLUTE BEGINNERS. I swear I never understood git until this course lol

    It teaches a but about bash scripting, git , ssh to cloud, etc.

    If you really want to learn to do bash scripting I would recommend you to code all the practice qs !

    You can find all the practise questions and project here to get an idea.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.