This schedule should be considered tentative, at least until it actually takes place!

Week Date Description
1 Wed, Jan 23

01 – Introduction

  • Welcome to Unix Tools and Scripting!
Dark Slides Light Slides
Fri, Jan 25

02 – SSH

  • Set up SSH so that my server survives longer!
Dark Slides Light Slides Command Index
Fri, Jan 25

02 – Navigating the Unix File System

  • Synopsis of how the Unix Filesystem is setup, what’s where, and how to get around.
  • Core navigational commands: cd, ls, and pwd.
  • How to alter command behavior (flags), and how to get more information (man).
Dark Slides Light Slides Command Index
2 Mon, Jan 28

03 – More on Commands

  • Giving a better understanding of commands, flags, and arguments.
  • How to alter command behavior (flags), and how to get more information (man).
Dark Slides Light Slides Command Index
Mon, Jan 28

03 – UNIX Permissions and find

  • How to share (and not share) your files in a multi-user environment
  • Unix file permissions in depth.
  • Tools to view (ls, stat) and change permissions (chmod, chgrp, chown).
  • How to find files and folders
Dark Slides Light Slides Command Index
Wed, Jan 30

04 – The bonus shebang

  • More than you ever wanted to know about the shebang
Dark Slides Light Slides Command Index
Wed, Jan 30

04 – The Find command, editing, and scripting

  • the second-most-useful command in the entire course: find
  • take your side in the emacs vs vim eternal conflict
  • write a simple script!
Dark Slides Light Slides Command Index
Fri, Feb 01

05 – Archiving

  • Various options for compressing files using zip, gzip, tar, and friends.
Dark Slides Light Slides Command Index
Fri, Feb 01

05 – Git, Chaining, Piping & Redirection

  • A gentle-ish introduction to git
  • Assorted stream-based commands: wc, sort, uniq, and tr.
  • The information superhighway: building pipelines and redirection.
Dark Slides Light Slides Command Index
3 Mon, Feb 04

06 – Wildcards, loops, and variables

  • Environment variables and local variables
  • chaining commands
  • loops (for and while)
  • wildcards and a wee bit of regex
  • Backticks and subshells
Dark Slides Light Slides Command Index
Wed, Feb 06

07 – Extra commands and details

  • Environment variables and local variables
  • chaining commands
  • loops (for and while)
  • wildcards and a wee bit of regex
  • Backticks and subshells
Dark Slides Light Slides Command Index
Wed, Feb 06

07 – Your shell, jobs, and proc

  • Processes
  • htop and top
  • Job control
  • the /proc filesystem
  • dotfiles and login shells
Dark Slides Light Slides Command Index
Fri, Feb 08

08 – Your shell and working remotely

  • Customizing your Shell
  • Tmux
  • Remote Git
  • SCP
Dark Slides Light Slides Command Index
4 Mon, Feb 11

09 – Expansions and Regular Expressions

  • How shell expansions work, and how to use them in practice.
  • What regular expressions are and how they relate to / differ from shell expansions.
  • the most useful command in the entire course: grep.
  • cut, paste, and stream operations
Dark Slides Light Slides Command Index
Wed, Feb 13

10 – Sed, cut, and paste

  • Cutting, pasting, splitting, and joining files
  • Using regular expressions in sed
  • xargs and shift for argument processing
Dark Slides Light Slides Command Index
Fri, Feb 15

11 – Advanced Bash Scripting

  • The case statement in bash.
  • Comparison of if and case in action.
  • Fancy matching with sets and extended regular expressions.
  • The splendid world of bash arrays.
Dark Slides Light Slides Command Index
5 Mon, Feb 18

12 – Awk / Gawk

  • Crash course on the awk programming language.
Dark Slides Light Slides Command Index
Wed, Feb 20

13 – Networking

  • Learn the basics of networking and network tools
Dark Slides Light Slides Command Index
Fri, Feb 22

14 – Docker

  • Learn about virtualization, containers, and VMs.
  • Talk about a specific tool known as Docker.
Dark Slides Light Slides Command Index
5 Mon, Feb 25

February Break – No Class

6 Wed, Feb 27

15 – Networking and Package Management

  • Protocols and TCP, what joy
  • Firewalls and ports and stuff
  • Sometimes I forget people read the abstract.
Dark Slides Light Slides Command Index
Fri, Mar 01

16 – Networking, OS, and virtualization

  • Learn about firewalls, abstractly
  • Learn about how processes run on your machine
  • see how VMs/containers work in principle
Dark Slides Light Slides Command Index
Mon, Mar 04

17 – Package Management, for real this time

  • see how to install stuff on linux
Dark Slides Light Slides Command Index
Wed, Mar 06

18 – More Package Management, and some distros

  • see how to install stuff on MacOS
  • Learn about language-specific package management
  • See a linux distro or two in action
Dark Slides Light Slides Command Index
Fri, Mar 08

19 – Final thoughts

  • a quick detour: package management for windows
  • Linux Everywhere: integrating your shell with your life
  • Where to go from here.
Dark Slides Light Slides