Lucid Programming Dojo : 201 : Introduction to the Shell

Helpful Links

Course Overview

While we enjoy delicious Italian food the Lucid Programming Dojo : 201 Introduction to the shell course aims to cover the following topics :

  • Drinking a Beverage
  • What is a shell? (Wikipedia : Computing Shell, UNIX Shell)
    • Atari - runs Basic
    • LISP machine - runs LISP
    • Fundamentally a Read-Evaluate-Print Loop REPL with specific syntax and semantics.
  • Why use a shell?
    • To perform a task, to retrieve some kind of information.
    • To interact with the Operating System - sometimes the only way.
    • Automatic tasks and procedures reliably.
  • UNIX Based Shells
    • ZSH
    • BASH
    • SH
    • TCSH
  • Windows Shells
    • Windows Power Shell - not covered in this course
    • DOS - not covered in this course
  • UNIX philosophy
    1. Write small programs that do one thing and do it well.
      • Isolates functionality into useful building blocks.
    2. Write programs to work together.
      • Compose a workflow from individual pieces easily.
    3. Write programs to handle text streams, because that is a universal interface.
      • The file system
        • Data with associated meta-data including name, permissions, type, etc.
        • Arranged in a way to create meaningful structure, e.g. directories and sub-directories.
      • Everything is a file
        • Well, nearly everything. Depends on platform and implementation.
        • e.g. on Linux processes show up in /proc, but this is not the case on Mac OS X.
      • Programs
        • Programs do one thing well
        • Programs accept textual input (stdin)
        • Programs provide textual output (stdout, stderr)
        • Using multiple programs to complete a task
          • Moving data between programs with files
          • Moving data between programs with pipes
    4. Man pages and -h/–help
  • Introduction to BASH
    • The command line
    • Executing commands
    • What are arguments
    • Looking at files in the file system (ls, LS Examples)
    • Moving around the file system (cd)
    • Current Working Directory (pwd)
    • Interacting with files in the file system
    • Editing files in the file system
      • Introduction to command line text editor programs
        • nano
        • vim
      • TextMate
    • Job Control (^Z, jobs, fg, bg)
    • Processes (top, ps)
  • Having some Lunch
  • Basic usage of the following command line tools :
  • Regular Expressions
  • Shell Scripting
    • What is a shell script
    • How to make a shell script
    • Flow control within a script
      • Loops
      • Conditionals
    • Now you can create a shell script what will this allow you to do?
  • Enjoying Desert

Example Code

 
201.txt · Last modified: 2010/01/12 10:36 by lucidsystems
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki