Comp 2673, Spring 2002
March 25, lecture notes

Here's what we'll study in this course:
   learning UNIX and learning some advanced C++ topics
   UNIX:
      using a command-line interface
      the file system/managing files
      editing (vi and emacs) 
      file permissions
      filters/pipes
      wildcards
      history/aliases and other shell goodies
      job control
      tar
      makefiles, g++, gdb
      miscellaneous UNIX commands
   C++
      templates
      STL
      inheritance
      exception handling

Web-page for course - read it thoroughly!
   course web site
   Contains information about requirements for the course
   Grading
   Assignments
   Schedule
   Lecture notes, homework assignments, programming assignments
   will be regularly posted to this site!
   
Now, we begin learning UNIX
   We'll spend a few days on this before covering to new C++ concepts,
   because you can't do anyting until you can use the system.
A multi-user system - working in a community
   1.  Don't reboot, tamper with machines
   2.  Don't overuse/misuse the system
   3.  Don't leave machine "locked" for excessive amounts of time
   3.  Respect other's files/directories
   3.  Maintain security on the system (good passwords, no hacking)
   4.  Maintain your own privacy by controlling access to your files
UNIX
   1.  Way faster than a gui interface
   2.  Many ways to do things, not just one
   3.  Much more powerful and flexible than 
   4.  You have to be more educated to use it
   5.  Unlike windows systems, the more you use it the faster you become
Logging on remotely - demo of the UNIX operating system
   1.  Download SSH
   2.  Click on the SSH icon on your desktop
   2.  Log in!  For jobs that do a lot of processing, don't always log
       on to the same workstation
   3.  Once you log on, you're interacting with a "shell", or "command shell"
       Notice the prompt (it can be changed) that indicates it's waiting
       for a command.  Tomorrow in lab you will: 
           log on
           change password
           create directories, move around directory structure
           list files, copy files, move files
           edit files with vi
   4.  This is a multi-user system - try whoami, w, finger 
   5.  The directory structure is just like folders on MSWindows,
       but without the visual interface.
       In UNIX you are "sitting" in a present working directory,
       that you can see with the "pwd" command.
       You start out in your home directory
       Examine the file system with pwd, ls, cd
   6.  UNIX commands often have flags (switches)
       Examples: ls -a
                 ls -l
                 man -k
   7.  Tomorrow in lab you will learn to use vi.  Next week you will learn
       emacs.  Both are powerful editors that are a little difficult in
       the beginning but with practice become tremendously efficient.