This repository is based on the shell-novice material from the Software Carpentry Foundation. It is being developed in collaboration between the Scientific Computing and Bioinformatics Core teams at Cancer Research UK Cambridge Institute.

The Unix Shell

The Unix shell has been around longer than most of its users have been alive. It has survived so long because it's a power tool that allows people to do complex things with just a few keystrokes. More importantly, it helps them combine existing programs in new ways and automate repetitive tasks so that they don't have to type the same things over and over again. Use of the shell is fundamental to using a wide range of other powerful tools and computing resources (including "high performance computing" supercomputers). These lessons will start you on a path towards using these resources effectively.


This lesson guides you through the basics of filesystems and the shell. If you have stored files on a computer at all and recognize the word “file” and either “directory” or “folder” (two common words for the same thing), you're ready for this lesson.

If you're already comfortable manipulating files and directories, searching for files with grep and find, and writing simple loops and scripts, you probably won't learn much from this lesson.


In order to follow the examples for each topic on your Mac or PC, you will need to run a "Virtual Machine" software called VirtualBox. This will allow you the same computer setup described in the course, without having to make permanent changes to your own machine. If you come along to one of our in-house courses, we will supply the relevant software and images on a USB stick. To save time, you may wish to install the VirtualBox application. There are installers available for Windows and Mac OSX.

Download also the training course virtual machine we prepared, click on the file name 'crukci-training-vm.ova', then click on 'Download' in the 'Oops' window, and click 'Download anyway' and save it on your desktop.

Once you have VirtualBox installed, an icon should appear on your Desktop (Windows) or Applications folder (Mac). After running this new application, a new window should appear and from the top menu, select 'File' then 'Import Appliance...' Navigate to select the file you have just downloaded.
Once this has finished, you should select the virtual machine called 'crukci-training-vm' and click on the green arrow 'Start' to start the virtual machine. When done, you will have to login as 'Shell Training' using the password 'elephant' and you will be ready to walkthrough the examples.


Link to PDF presentation


The pages linked below are used to illustrate the concepts introduced in the slides. Each box with green text indicates a command that you can enter in the Unix terminal.

You should check that you get the same output as printed in the blue text Please feel free to experiment with the commands and try things out. You cannot break anything on your own machine! If you get stuck, just close and restart your Virtual Machine

    Session I

  1. Introducing the Shell
  2. Files and Directories
  3. Creating Things
  4. Session II

  5. Pipes and Filters
  6. Finding Things
  7. Session III

  8. Transferring Files and Accessing Remote Server
  9. Loops
  10. Shell Scripts

Other Resources