Overview
Unit 1
Introduction
In this unit, we will focus on building foundational skills for using the command-line interface (CLI), specifically the bash
shell. The bash
shell is a versatile scripting environment widely used on Unix-based systems for file management, task automation, and software interaction. By the end of this unit, you will be able to execute basic commands, write simple scripts, and grasp the core principles of shell scripting, equipping you to perform a variety of computational tasks efficiently.
Learning Objectives
At the end of this unit students will be able to:
- Navigate the command line interface (CLI) using the
bash
shell. - Create, organize, and manipulate data files and directories.
- Gain familiarity with using the VACC, an high-performance computing (HPC) cluster.
How to use these materials
This guide is intended for the reader to follow along step by step in chronological order. As you read, make sure to practice your UNIX skills by completing the exercises and examples in each days' lesson. While the code is already written out in the text, typing out the code manually (rather than copy and pasting) will help speed up the learning process – practice makes progress!
Important note:
Examples of code will be arranged as a code chunk. This is distinguished by a slightly greyed out background behind the code text.
ssh username@vacc-user1.uvm.edu
The output of executed code will occasionally be displayed as well in grey code chunks. An output is the consequence that occurs after code is executed. Outputs in this tutorials will begin with ##. This line of code is not meant to be typed only to compare.
## genomics_data other raw_fastq README.txt reference_data
Advice for beginners
You should:
-
Be patient. Learning a new skill can be frustrating.
-
Know that the hardest part is the beginning. Learning how to code is hard, but it’s not impossible. All it takes is practice and I can assure you that it will get easier.
-
We will spend a lot of time learning to manage your data in addition to graphing it. Most people want to get right into graphing their data, but if the data is not already fully prepared, you will actually spend most of your time organizing/structuring your data. Graphing, by comparison, is far easier to learn.
-
Ask for help. Do not suffer in silence.
-
Some of you may need to physically write code down to remember it. Do it! I've also had other students print these pages and highlight during class. Do it! You may need to practice outside of class or read the tutorials before class to fully understand. Do it! You know how you learn best. Like any course, I can not go over the same concept over and over again. To learn something for a exam, you need to review it. You need to study. So although I do not require you to do these things, you might have to do this to become competent and independent in coding.