BIOL5526: 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 they aren’t typing the same things over and over again.

As well, researchers often find themselves confronted with large amounts of data to process or large simulations to run. These sorts of problems can take more time and computer hardware than is readily available on personal computers. 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 the Linux shell and remote Linux servers effectively.

Prerequisites

This lesson guides you through the basics of file systems 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.

These notes are taken from existing workshops, and will only be available online for this course. Some topics are marked as optional and may not be presented depending on instructor and available time. You may wish to save links to the more permanent existing workshops for your future reference:

Schedule

Setup Download files required for the lesson
00:00 1. Introducing the Shell What is a command shell and why would I use one?
00:10 2. Navigating Files and Directories How can I move around on my computer?
How can I see what files and directories I have?
How can I specify the location of a file or directory on my computer?
00:40 3. Working With Files and Directories How can I create, copy, and delete files and directories?
How can I edit files?
01:00 4. Interacting with a server How do I get started with a Linux server?
01:15 5. Monitoring resources What hardware resources are being used?
01:45 6. Jobs in the background Can I run a job without being connected to the server?
Now that my job is running in the background, how do I control it?
02:00 7. Finding Things How can I find files?
How can I find things in files?
02:15 8. (OPTIONAL) Pipes and Filters How can I combine existing commands to do new things?
02:45 9. (OPTIONAL) Loops How can I perform the same actions on many different files?
03:15 10. (OPTIONAL) Shell Scripts How can I save and re-use commands?
03:45 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.