Greg Wilson
Greg Wilson

Co-founder of Software Carpentry

Dr. Greg Wilson has worked for 30 years in both industry and academia, and is the author or editor of several books on computing and two for children. He is best known as the co-founder of Software Carpentry, a non-profit organization that teaches basic computing skills to researchers.

See More

Course Description

The Unix command line has survived and thrived for almost fifty years because it lets people do complex things with just a few keystrokes. Sometimes called "the universal glue of programming", it helps users combine existing programs in new ways, automate repetitive tasks, and run programs on clusters and clouds that may be halfway around the world. This course will introduce its key elements and show you how to use them efficiently.

  1. 1

    Manipulating files and directories

    This chapter is a brief introduction to the Unix shell. You'll learn why it is still in use after almost fifty years, how it compares to the graphical tools you may be more familiar with, how to move around in the shell, and how to create, modify, and delete files and folders.

  2. 2

    Manipulating data

    The commands you saw in the previous chapter let you move things around in the filesystem. This chapter will show you how to work with the data that's in those files. The tools we will look at are fairly simple, but are the model for everything that's more powerful.

  3. 3

    Combining tools

    The real power of the Unix shell lies not in the individual commands, but in how easily they can be combined to do new things. This chapter will show you how to use this power to select the data you want, and introduce commands for sorting values and removing duplicates.

  4. 4

    Batch processing

    Most shell commands will process many files at once. This chapter will show you how to make your own pipelines do that. Along the way, you will see how the shell uses variables to store information.

  5. 5

    Creating new tools

    History lets you repeat things with just a few keystrokes, and pipes let you combine existing commands to create new ones. In this chapter, you will see how to go one step further and create new commands of your own.