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.