---
# System prepended metadata

title: Unix for Beginners Lesson

---

# Unix for Beginners Lesson

## History of Unix (15 minutes)
1. Unix (and some context)
2. What exactly is Linux
3. What about macOS
4. How is relevant today
5. What are we going to learn

## bash (5 minutes)
Talk about **"The terminal"**
- ssh 
- man

<!-- In no particular order -->

## Utilities (30 minutes)
<!-- Simple exercise, take from https://overthewire.org/wargames/bandit/ -->
- ls
    - explain argument
    - dotfiles
    - how to read permissions
    - "." and ".\."
- pwd
    - what is a directory
    - Unix Filesystem Hierachy
- cat
    - README.txt
    - less
    - tail password file
    - head password file
- cd
    - ~/
    - "-"
    - /
    - start with "first"
    - go deeper inside

- grep
    - File descriptor (30 minutes)
        - stdin
        - stdout
        - stderr
        - pipes
        - PIPES
- uniq, wc, sed
- find
- mv
- cp
- rm

## Text editing (40 minutes)
nano/vim

- Editing a copy of their .bashrc
    - Adding alias
    - 

## Users (30 minutes)
- User
- Group
- SUPER user
- sudo
- root vs non-root

## Package managers (30 minutes)
- Installing/compiling npm
- Using npm to install something
- installing nginx/apache
- configuring a webserver

## Network (if time permits)
- ifconifg
- scp/ssh/sftp
- netstat / ss (netstat is easier to read)
- route
- ping nslookup
