Introduction to the Terminal

Overview:

  • Examine files and directories (pwd, ls)
  • Make and remove files and directories
    • Files: touch [filepath], rm [filepath]
    • Directories: mkdir [dir name], rmdir [path to empty dir]
  • Naivigating through directories: cd [dir path]
  • Copy and move files: cp [filepath] [destination path], mv [filepath] [destination path]
  • Copy and paste file contents:
    • Copy: pbcopy < [filepath]
    • Paste: pbpaste > [destination filepath]

Vocab:

  • Terminal - Program for interacting with the command line
  • Shell / Command Line - Low level, text-based interface for the computer
  • Bash - A type of shell found on Unix systems


  • Directory - folder
  • command - instructions for a computer to execute via the command line
  • argument - info needed to run a certain command
  • flag - an optional arugment, usually prefixed by - or --

Anatomy of a command

$ mkdir -p Turing/Week01

$ [command] [flag] [argument]

Why use the command line?

  • Speed / Efficiency
  • Sometimes you really need it
  • Computer competency (it make you look good)
Old Hacker Gif

Get the terminal open:

On a mac:
  • Press command + spacebar to open Spotlight
  • Type terminal
  • Press enter

Checking out File Structure

  • pwd - print working directory
    • Check the current directory you're in
  • ls - list
    • List the items in the directory (both files and other directories)
    • Flags:
      • -l gives more detail about the items
      • -a reveals hidden files

Your Turn

  1. In the terminal, figure out the name of your root directory (base directory that the terminal starts in)
  2. Figure out what files / directories are in the root directory

Making and Removing Directories and Files

  • mkdir [dir name] - make a new directory
  • touch [file name / file path] - create a new file
  • rm [file path] - remove (delete) file (permanantly)
    • Flags:
      • -R remove a directory and its contents
      • -i require confirmation before removing
  • rmdir [directory name] - remove empty directory

Navigating through directories

  • cd [directory path] - change directory
    • To move up a level (out of a directory): cd ..
    • To get to root directory: cd ~
    • Separate folders by /
    • Use tab to autocomplete

Give it a try

  1. Navigate to the root directory
  2. List its contents
  3. Make a new directory
  4. Make another directory inside that directory
  5. Make three more nested directories
  6. Delete them one by one

Take a break

Adding files / directories from your working directory

  • Chain things together with /
  • Works for cd, ls, and touch
  • Need -p flag for mkdir

Copy and Move Files / Directories

  • cp [source path] [destination path] - make copy of file / directory and pastes in the destination
  • mv [source path] [destination path] - move file / directory from source to destination

Give it a shot

  1. Make three nested directories
  2. Make a .txt file in each directory
  3. Copy the file from the top directory into the second one
  4. Move the file in the bottom directory into the top one
  5. Extra: try renaming the files using mv or cp

Copy and paste file contents

  • pbcopy < [file path] - copy file contents
  • pbpaste > [destination file path] - paste copied file contents

Try it out

  1. Open a file you made in the last exercises in Sublime (try it in the command line)
  2. Add some text and save it
  3. Copy the file's contents
  4. Paste the contents into a file in another directory
  5. Open the edited file in Sublime to make sure it worked

Learn More

  • Keep practicing in the terminal!
  • Use cheatsheets
  • Use info [command] or man [command] to get more information on commands
    • type q to exit these menus
  • Check out the advanced topics at the bottom of the lesson plans

Review

  • What's the difference between mv and cp?
  • How do we move between files?
  • What does mkdir do?
  • How do you make a file?
  • What is a flag? Give an example.
  • What is a shell?
  • How do we remove a file?
  • How do we remove a directory?