View on GitHub

Introduction to the Unix Shell

fredhutch.io's four-class intro to the Unix shell and command line

Introduction to the Unix Shell

Class 1: Introduction to shell commands

Objectives

Welcome to Introduction to the Unix Shell from fredhutch.io! This course introduces you to basic tasks using the Unix shell, including:

A solid understanding of these basic principles is required prior to tackling material in our intermediate high performance computing (HPC) courses for both the on-premise clusters and cloud computing.

By the end of this lesson, you should be able to:

Getting started

Check software installation

GUIs vs CLIs

command prompt

zsh vs bash https://stackabuse.com/zsh-vs-bash/ https://www.howtogeek.com/362409/what-is-zsh-and-why-should-you-use-it-instead-of-bash/

bash vs zsh

First command: username?

whoami

Next command: where am I in my computer?

pwd

What things are in this place in my computer?

ls

Change working directory to Desktop:

cd Desktop/

Download project directory

Download project:

On Linux:

wget https://raw.githubusercontent.com/fredhutchio/unix_shell_intro/master/example_unix_project.zip

On Mac:

curl https://raw.githubusercontent.com/fredhutchio/unix_shell_intro/master/example_unix_project.zip -o example_unix_project.zip

Unzip project, then inspect the project directory:

unzip example_unix_project.zip
ls example_unix_project

Describe project

relative vs absolute paths

. and ..

flags

ls -F

Do spaces matter?

ls -a

Relate to Fred Hutch drives

Working with files and directories

mkdir doc

cd doc

nano notes.md

mv

cp

rm

rmdir

Combining commands

wildcards

manuals, help

wc

redirection

cat

sort

pipes

head

options with values

what to do if I get stuck?

Wrapping up

make sure work is saved

review how to get back into work

review objectives

preview next class’s objectives

Errata

https://merely-useful.github.io/py-rse/bash-basics.html