Unix shells such as Bash or Zsh are command line interpreters for Unix-like operating systems: the user enters commands as text—interactively in a terminal or in scripts—and the shell passes them to the operating system.
Giving instructions to the machine via text instead of using a graphical user interface (GUI) is very powerful: while automating GUI operations is really difficult, it is easy to apply commands to many files, combine commands, and rerun scripts. Unix shells thus allow the creation of reproducible workflows and the automation of repetitive tasks. They also allow to securely access remote machines and HPC clusters.
This course is a hands-on introduction to Bash and Zsh. It will teach you to login to the Alliance supercomputers and covers common commands, loops, redirections, functions, wildcards, aliases, and scripting.