Welcome to the introduction to the Unix Shell. This course does not require any prior knowledge of Shell.
Since we will be using GitHub and GitHub Skills templates, I strongly suggest completing two GitHub skills courses:
- Introduction to GitHub
- Code with Codespace (the first step is enough for this course)
In this course you will:
- practice using GitHub and GitHub Skills templates
- learn basic information about Shell
- practice using most useful Shell commands
- practice using loops, pipelines and filters
- practice writing shell scripts
The entire course will have 4 parts/weeks, each part will have multiple sections that will require reading short text or specific section from the external sources, watching a short video or practicing your knowledge in hands-on activities. Every week should take no more than 1--2, hours and significantly less if you have prior experience.
Important
You can do the course on your own time, but in February 2025 I will offer virtual office hours. I will provide the dates on this page soon, you can also sign up for updates by filling this form.
The topics covered in four weeks:
- Week 1:
- What is Shell?
- Working with GitHub and Codespace.
- Exercise 1: Practicing using shell commands.
- Exercise 2: Creating new files.
- Week 2:
- More about Shell.
- Week 1 review.
- Working with files content.
- Practice using new commands.
- Exercise 1: Merging content of the files.
- Exercise 2: Using Pipes to work with file content.
- Week 3:
- Week 2 review.
- For loops and simple scripts.
- Exercise 1: Using loops.
- Creating a script.
- Exercise 2: Creating a script with an input.
- Week 4:
- Week 3 review.
- Searching and editing files.
- Exercise 1: Creating a script to search files.
- Environmental Variables.
This course is a part of the Best practices for reproducibility and testing in scientific software series, created for the Better Scientific Software (BSSw) Fellowship project.
- Right-click Start course and open the link in a new tab.
- In the new tab, most of the prompts will automatically fill in for you.
- For owner, choose your personal account or an organization to host the repository.
- We recommend creating a public repository, as private repositories will use Actions minutes.
- Scroll down and click the Create repository button at the bottom of the form.
- After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README.
Get help: Submit an issue
Acknowledgment: This work was supported by the Better Scientific Software Fellowship Program, a collaborative effort of the U.S. Department of Energy (DOE), Office of Advanced Scientific Research via ANL under Contract DE-AC02-06CH11357 and the National Nuclear Security Administration Advanced Simulation and Computing Program via LLNL under Contract DE-AC52-07NA27344; and by the National Science Foundation (NSF) via SHI under Grant No. 2327079.