By the end of this lab, you will be able to:
There are 8 parts to this lab:
Part 1: Introduction
Part 2: Operating Systems
Part 3: File Systems
Part 4: Using Unix
Part 5: Email With Pine
Part 6: Moving Files
Part 7: Starting Your Web Page
Part 8: Submitting Your Work
In this lab, we will highlight instructions for what you have to submit in a yellow box like this one. |
Welcome to the first lab for COS 109. In the next few hours, you'll learn how to explore and find things in the file system on your machine, how to use Unix to run programs and check your email, and how to transfer files from your machine to Unix and back. You'll also get started on your own web page. At the end, you'll be asked to submit, by email and by transferring a file, answers to some questions that will be asked along the way.
You can do this lab in a cluster in the Friend Center, where the machines run Windows XP and have a specific set of programs loaded. Or you can do it elsewhere, including in your room with your own computer, so long as you are running some flavor of Windows or Mac OS X. If you are not in the lab, however, you won't be able to ask questions of the lab assistants: when things don't work or when you get into trouble and can't figure out what's wrong, you're on your own.
We realize that for many of you, much of this lab will seem incredibly familiar and trivial, but for others, some or even all of it will be new. If you don't know much about computing, follow the steps in order and ask a TA for assistance at any time.
Since software and hardware change every year, often in subtle ways, inevitably something won't work exactly as described here. If you find something wrong with the instructions, please let us know. Thanks.
Mac users: This lab has historically been aimed at Windows users. We've updated it this year for Macs as well, but there may still be glitches. Please let us know about problems, but press on anyway. The details are different on Windows, Mac and Unix, but the mechanisms are close analogs, a good example of the difference between logical organization and physical implementation.
Windows, Mac OS X, and Unix are all operating systems, which are programs that manage the resources of a computer for you. An operating system lets you run programs like browsers and word processors and iTunes; it lets you store and retrieve information on disks; it lets you use peripheral devices like printers and MP3 players; and it lets you communicate with other machines via a network.
"Windows" is a family of operating systems from Microsoft. Microsoft cranks out a new version every few years; Windows XP has been around for several years, and Vista, the next version, is promised for the end of 2006. Unix, Linux and Mac OS X are also operating systems, not from Microsoft, that all perform the same basic functions, though with myriad differences in style, philosophy, and details. Most consumer devices like MP3 players and cell phones also run some operating system, though simpler and much better hidden from you.
One of the main functions of an operating system is to provide an environment in which you can run programs. Most operating systems allow you to run several programs at once, switching your attention from one to another at will. Some, like Unix, are often controlled by typing on the keyboard. Most others are graphical and are usually controlled with a mouse or pen. Mac OS X does a nice job of combining these two styles, with a glossy mouse interface and a Unix implementation in the background.
Word processing is one of the most frequent computer tasks, and most people have used Microsoft Word to process documents. But there are plenty of times when you don't want a formatted document nor the proprietary Word format. Every system has a variety of editors that let you create plain ASCII text with no additional formatting or other goo.
On Windows, you can use Notepad, or you can use Word or Wordpad if you save your files as ".txt" format. Run Notepad by choosing "Programs | Accessories | Notepad" from the Start Menu, or by typing "notepad" into the Run dialog box ("Start | Run").
On a Mac, you can use TextEdit (in Applications). Use Preferences / New Document to set "Plain Text". Do not use "rich text format" (.rtf).
For the rest of this lab, you will record your work in a plain ASCII text file as you go along, and then copy it into an email at the end.
Do this to begin collecting data for submission:
If you are using a cluster machine, you can save the file on the Desktop. If you do this, you will have to save the file somewhere else before you leave the cluster, since files on cluster machines get cleaned up regularly.
Leave your editor running. You will be adding content to this file for the rest of the lab. Each time you add something, save the file; this (usually) protects you in case something goes awry, and is always a good idea.
A file system is a part of the operating system that manages all the data stored on the computer, in a form that is convenient for users to save information, organize it, and retrieve it as needed. The same organizing structures that are useful for the information on a hard disk are also useful for removable media like USB drives and CD-ROMs and MP3 players, and even for information physically stored on other computers and accessed through a network, so these are packaged as file systems as well. Even though the physical structures vary greatly, the operating system makes them all look the same, another instance of implementing the same logical organization with different physical mechanisms.
Information in a file system is organized hierarchically: at the top level is a set of folders (often equivalently called directories) and files. A folder contains the names of files and folders that are grouped together for some purpose. A file holds specific information, such as a Word document, a spreadsheet, a mail message, a picture, an MP3 song, or a program like Word or TextEdit.
On Windows, the usual organization creates a file system on the computer's hard drive, in a folder called (for ancient historical reasons) "C:". For even more ancient reasons, the now largely extinct floppy drive is called "A:". If there is a CD-ROM or DVD, it takes the next letter, and is thus often "D:". Other plug-in devices take up the next free letters.
Other "drives", like network connections, have even more arbitrary letter names; at Princeton, student files can be stored in a big file system on a central OIT computer and your part of that file system is accessible from a PC or Mac as your "H:" (for "home") drive. Presenting a file system on one computer as if it were on another is another example of the difference between logical and physical implementations.
This OIT page explains how to make your part of the OIT Unix file system visible on a Windows PC.
This OIT page explains how to make your part of the OIT Unix file system visible on a Mac.
There are a variety of way to explore the contents of these file systems. The simplest, though not the most flexible, is to double-click on something and see what happens. If you click on a folder, it will list of whatever is contained therein: each double-click on a folder expands its contents.
A double-click on a file, however, typically executes a program that is associated with the presumed type of information that the file contains, as indicated by the suffix of the name. For instance, filenames ending in .doc are assumed to be Word files, and clicking on such a file will cause Word to be started up to process that file. Filenames ending in .txt are usually associated with Notepad or TextEdit, so another way to start an editor is to click on a file like lab1.txt. You should be cautious about this mechanism if you don't know what you're doing, however. Files of type .exe on Windows are "executable" files -- programs -- and you sure don't want to run them unless you know exactly what will happen.
Although a Mac .app is actually a folder, double-clicking on it runs the executable program hidden within, so the same cautions apply.
Now do one of the two sections below according to the operating system you're using.
Both the My Computer icons, and the Save (and Save As... or Open) dialog box allow you to look through folders and find files. If you want to move files around, however, or find a program and start it, then Windows Explorer (not to be confused with Internet Explorer, the browser) is more convenient.
Use the Start Menu to find and start Windows Explorer; it will usually be under Programs or Accessories. (You can also type "explorer" in the Run dialog box.)
Explorer gives a split-screen view of the file system. To the left is the entire folder hierarchy. When you click on a folder, its contents will be displayed on the right. Notice that some folders have +'s or -'s next to them. This means that the folder has subfolders. If it is a plus, then Explorer is hiding the subfolders. If it is a minus, then you should see the expanded list of subfolders. By clicking on the + or -, you can flip between the condensed + view and the expanded - view.
Find the file lab1.txt by clicking "Desktop".
You should see all of the Desktop contents displayed at the right, including your file. (These should correspond to what you actually see on the Windows Desktop.) Now look through the menus at the top and try left-clicking and right-clicking on various things to see what options are available. Don't choose any of these options yet! To move a file, click on it and drag it to its new location on the left. You can also right-click on it and select "Cut" to remove it completely, or "Copy" to make a copy of it. Then you can right-click on a different folder and select "Paste" to put the copy there. All of these options are also available in the "Edit" menu.
The various programs for displaying directories normally give an almost worthless visual display of icons. You can see much more useful information by selecting View from the menu, then Details. You can also sort the items in order by date or size or type, either by selecting View, then Arrange Icons, or by clicking on the corresponding column heading. Experiment with them to see what happens.
In spite of its name, Explorer is most useful when you already know approximately where you're going in the file system. If you know even part of the name of a folder or file, however, you can often find it most easily with a different program. Select Start, then Search, then "For Files or Folders...".
You are now going to use Find Files and Explorer to find some interesting files (and some boring ones too, but that's life). Do the following operations.
Save each time, so in case something bad happens, you still have the info.
If you click on the icon for your hard drive, you will be running Finder, the all-purpose program for exploring the Mac file system.
Finder gives a multi-screen view of the file system that can be formatted as large useless icons (the default), or a list with details, or multiple columns. To the left is a folder hierarchy. When you click on a folder, its contents will be displayed either below or to the right. Notice that some folders have right-pointing or down-pointing triangles next to them. This means that the folder has sub-folders, and you can expand or contract the view by clicking on the triangle.
Find the file lab1.txt by clicking "Desktop".
You should see all of the Desktop contents displayed at the right, including your file. (These should correspond to what you actually see on the Desktop.) Now look through the menus at the top and try clicking on various things to see what options are available. Don't choose any of these options yet! To move a file, click on it and drag it to its new location on the left. You can also click on it and select File / Move to Trash to remove it completely, or Edit / Copy to make a copy of it. Then you can click on a different folder and select Paste to put the copy there. All of these options are also available in the Edit menu.
As mentioned above, a Mac .app is really a folder, with an executable file several levels down. As an experiment, use Cntl-click (that is, clicking while pressing the Control key) on the name, then Show Package Contents to expand the folder; look in Contents and then in MacOS.
If you type the prefix of a filename into the search box at the top right corner of a Finder window, you'll get a list of files and folders with that name. (You can't search for a part of a name, however.) You are now going to use this to find some interesting files (and some boring ones too, but that's life). Do the following operations.
Save each time, so in case something bad happens, you still have the info.
At the end of this part you should have 6 lines in lab1.txt.
Unix is an operating system; like Windows and Mac OS X, it controls the resources of a computer on your behalf. Unix has been around a lot longer than other systems, and runs on many more different kinds of computers. Many of the Internet and Web services that you use run on Unix machines, and most of the central computing services at Princeton are based on Unix. The web pages that you will create in the next few labs are also stored in Unix files, so it will help you to understand at least the rudiments of how to access and use the campus Unix systems. The Linux operating system is a variant of Unix, so anything you learn about Unix will apply to Linux as well; indeed, you will use OIT's Linux systems for this lab.
Mac OS X is also a Unix variant. Although the Mac has an even glitzier graphical interface than Windows, underneath is the full power of Unix, a nice combination. If you're using a Mac, start Terminal (in Applications / Utilities) and all of the Unix commands described here will run the same.
Other Unix variants include FreeBSD, AIX, HP-UX and Solaris. We will lump all of these under the generic term "Unix", since for our purposes they are all the same.
Unix systems are more reliable and secure than Windows (or so it is believed by Unix aficionados) and present programmers with better access to the internals of the machine. As a result, although Windows is dominant in offices and homes, Unix is often used to support infrastructure functions (the back office); familiar sites like Google, Amazon and Yahoo all use Unix or Linux.
Using netcraft.com, find
another major web site that uses Unix.
Add a line to lab1.txt with the site name
and the name of the specific Unix variant.
Find a major web site (other than microsoft.com) that doesn't use Unix. Add a line to lab1.txt with the site name and the operating system name. |
In this part of the lab, you will see how to connect to a Unix computer provided by OIT using a program called SSH. You will also see how Unix provides for the permanent storage of your files, since the cluster systems only provide transient storage.
If you are using a public cluster machine, you can't save files on it, since they likely won't be there if you return even a day later. You have to store them in some central location. That central location is a Unix system run by OIT. Files are stored there, and backed up onto other systems as well so you can recover them in case of a disaster. Similarly, your Princeton email inbox is located on an OIT Unix system, so it can be centrally administered and accessed from any machine on (or off) campus.
Most of the time you can save and retrieve files from the central system without using Unix directly; the Windows or Mac H: folder that you saw earlier gives you most of the access you would ever need. And you can read mail just fine from a mailer or a browser on your own PC or Mac.
But sometimes you simply have to get to the place where the information really is. For this, we use SSH, which is a program that lets a user on one computer log in and use another computer over a network. SSH stands for "Secure Shell". The important word here is "secure" -- information that travels between your machine and the other system is encrypted, so it can't be eavesdropped on by anyone along the way. This is nice if you're exchanging intimate messages with a significant other, and it's even nicer if you're sending your password to the other machine. So you should always use SSH if you can. The cluster machines have SSH, and you can get SSH for your own machine from OIT; if you got the standard software distribution, it's already installed. You can also run SSH to get to your OIT account from a Mac using Terminal.
Follow these instructions to connect to Arizona, which is a group of OIT computers running Linux. We'll just say "Unix" from now on, since things are mostly exactly the same.
Start by opening SSH. This process will be different depending on what operating system you have. Instructions for Mac OS X and Windows are provided below.
Run SSH by selecting it from the Start menu. It will likely be listed under "Programs | SSH Secure Shell | Secure Shell Client." If you cannot find it there try doing a search for "Secure Shell Client"; if that fails, consult a TA.
If there were no problems you will be asked for your password. Enter it at the appropriate time, then hit Enter. You can ignore (No or Cancel) anything else that happens first.
Note: Unlike PC and Mac systems, your password will not be echoed with asterisks; there will be no response at all. Just type and push Enter when you're done. And you can't correct typing errors while entering your password.
If you are running Mac OS X you will launch SSH through a program called Terminal. This program is located in your Utilities folder, which itself is in the Applications folder.
Once you have Terminal running, type the following line:
ssh your_netid@arizona.princeton.edu
Replace your_netid with your own netid. For example, if your netid is joesmith, you should type ssh joesmith@arizona.princeton.edu. After you have typed this line, press Enter or Return.
You should see a flood of text lines that finally ends with a "prompt" that looks like this:
flagstaff.Princeton.EDU%The prompt says that you are now connected to one of the Unix computers in the Arizona cluster (flagstaff, phoenix, tucson or yuma) and it's ready to do your bidding.
As seen here, Unix has a very different flavor from Windows. Rather than running a program by clicking on an icon or selecting a menu item, you type the name of the program in a window where a prompt is displayed. Keyboard commands with cryptic names like "ls" and "cd" run programs to help you navigate Unix and can be typed in whenever you see a command prompt like
yuma.Princeton.EDU%
Behind the scenes, Unix, like Windows and MAC OS X, maintains a file system with files and folders (though it calls folders "directories"). When you first log in, you should be in a directory called your "home" directory. This is loosely like C: on Windows or Home on a Mac; it holds all of your files, most of which cannot be read or even seen by other users. And it's the same directory that is set up as the H: drive from a PC or a Mac.
Before you start typing Unix commands, familiarize yourself with the way the commands will be written in these lab instructions. Whenever you are told to type something, what you should type will be in this computer-like font. Similarly you will sometimes have to substitute information of your own; we will use this italic computer-like font, as in your netid. In all of these, pay attention to case -- Unix distinguishes between lower and upper case letters -- and to spacing.
Try the following commands. For each, type the name, then push Enter or Return.
mkdir cos109
and then hit Enter. If you now run the ls command again, your
new directory should be there. This is rather like File | New Folder
in Explorer.
cd cos109
This will move you to the directory you just created.
To get back to your home directory, type
cd
by itself. You can also type
cd .. to move up one level in the file system, and
you can type pwd to print the name of the
directory you are working in.
who
Can you find your own netid among the others? Typing who | more will let you see the names one screen at a time.
Why use Unix? It largely depends on what task you are trying to accomplish. For example, Windows has an enormous collection of useful programs, many of which have no Unix equivalent, and Windows comes installed on most PC's. Unix is a good environment for writing programs, however, especially programs that are meant to work on more than one kind of computer, so it is often preferred by programmers. It supports a bunch of users on one machine, which Windows does not. Meanwhile, don't worry if Unix seems strange at first. You won't need to use it very often, but it is helpful to know how to move around in it. And if you own a Mac, knowing Unix will give you a new way to use your computer.
Note: When logged into UNIX, you may have to use the "DEL" key instead of "Backspace" to delete a character.
At this point, you should have 12 lines in lab1.txt.
Every student has an email address netid@princeton.edu. You can read mail sent to that address and send mail to others across the world, using any of several mail programs, such as Outlook or Webmail with a browser.
This section will guide you through using the Pine mail program. Pine, like other Unix programs, is text-based instead of mouse-based. Although it will not be your first choice for most email use, Pine has some advantages. It works from any SSH window; you don't need a browser. It is also immune to PC viruses, since it runs on Unix and it does not run other programs automatically.
To begin, type pine after the prompt, and push Enter. (This is in an SSH window, remember.) Follow the instructions it gives you for setting up Pine. If you have any trouble, this OIT article may help, as will a TA.
If you opened Pine correctly, you should now see a menu with options to compose messages, view messages in the current folder and view a list of folders. You can adjust the size of the Pine window as you like. In the top right corner, you should see the name of the currently open folder and how many messages it holds. At first, this should be INBOX, which lets you check all of your new mail. Later, you can make your own folders to organize old messages from different senders.
Because you are still in Unix, you will need to use arrow keys and keyboard commands to navigate Pine. Do not try to use the mouse. Using the arrow keys, select "Folder Index" and press Enter (or just press "I") to see a list of current email messages.
Using the arrow keys, select the message you would like to read and hit Enter to read it. Notice that many of the available commands are listed at the bottom of the screen:
M - Return to the main menu
I - Return to the message index
E - Export the message to a text file, which can be edited with any editor
S - Save the message in the specified folder and delete it from your inbox.
D - Delete a message without saving it
C - Compose a new message
R - Compose a reply to the sender of the currently selected message
N - Move to the next message
P - Move to the previous message
There are many other useful options, but you can discover them on your own with questions and experimentation.
Now you will send a message to yourself with Pine. The process is pretty self-explanatory, but we'll help you through it this first time. In these instructions, you do not need to use upper-case letters when holding the Ctrl key.
You can revise any part of this by using the arrow keys to get to the right position and then backspacing to delete old text before you type new text.
When you are finished, hold down Ctrl and press X (this is called Ctrl-X). The caret (^) is how Pine reminds you to use the Ctrl key. Thus, ^X means "hold down Ctrl, then push x". All of these commands use Ctrl because you need letters like "x" and "c" for your message text.
Confirm that you want to send the message by pressing Y.
Leave your SSH window open. Pine will soon notice that new mail has arrived (though it won't be a big surprise, since it's the mail you just sent yourself). There is usually a beep to announce incoming mail.
When new mail arrives, add a line to lab1.txt that tells how Pine reported that fact. |
Once the new mail has been observed, you can delete it with d. Leave Pine by typing q then y, and log out of Unix by typing logout.
Some new glitch this year: sometimes Pine never reports that the mail has arrived, though it's perfectly visible with some other mail program. If this happens to you, just say so and carry on.
There are a variety of ways to copy files from one place in a file system to another, or from one file system to another. In Windows, the clearest and most uniform way is to select the file of interest by a single mouse click in a program like Explorer (so it is highlighted), select Copy from the Edit menu or by right-clicking on the filename, then select the folder where you want the copy to appear (so the folder name is highlighted), then select Paste from the Edit menu or by right-clicking.
There are shortcut mouse actions for Copy (Ctrl-C or Option-C) and for Paste (Ctrl-V or Option-V), and those are well worth learning. In some situations you can "drag and drop" the file to make a copy, which is very graphical and intuitive. But be cautious with drag and drop, since in some contexts, it means "copy" and in others it means "move", and these are not the same operation: "move" means to remove the file from the place it was and put it into a new place, leaving you with a single instance, while "copy" leaves you with two instances.
Copy the file lab1.txt that you are building up on the Desktop to your Unix directory as seen through the H: drive or the Mac equivalent.
After the file is copied (it should take no time at all) verify that it seems to be correct: the file exists in both places, and it has the same size and sensible modification times.
Somewhat irritatingly, Windows Explorer does not always update the display of a folder when a change is made. To be sure you have a consistent and up to date display you may need to use View / Refresh.
Here is a chance for you to use your newfound Unix skill to see if the file was copied correctly.
Connect to Arizona again if you closed the SSH window already. As always when you first log in you will be in your home directory. This is the same directory as your H: drive. In your SSH window type
cd cos109to verify that the file you just transferred is there and about the right size. It should be about the same size as in Desktop.
ls -l
Add a line to lab1.txt with the size reported by Unix and the size reported by Explorer or Finder (e.g., Unix 395, Windows 1KB). |
The last two things that you have done, changing to a directory with cd, and listing the contents of the directory with ls, are much the same as double-clicking on a folder. When you double-click you're telling the operating system "I want to move to this directory, and I want to be shown what's in it."
A web page is a text document similar to the one you've been creating for this lab, but there are two important differences between lab1.txt and a web page. First, a web page is specifically marked such that anyone who knows its location can access (but not edit) it. Second, whereas lab1.txt is written so that it's easy for a person to read, a web page is written so that a browser can format it the way you want. With the second condition in mind, let's start making a web page.
Open a new document in your editor and save it as lab1.html. This web page is not going to be fancy and it won't use much formatting but it will include extra information to describe its layout. This extra information is included through a set of tags, which are just text surrounded by < and > signs. They give the browser information about how to display the text.
The skeleton of any web page is as follows.
<html> <head> <title> Title of the Web Page Goes Here </title> </head> <body> Content of the Web Page Goes Here </body> </html>
In Lab 2 we will go into detail about what exactly this means, but for the time being it's safe to simply copy this text and paste it into your new document. Remember to save the document every time you make a change.
Once the document is saved as lab1.html, start your web browser of choice. You can preview your page by opening the document which you just saved in the browser, using File | Open. When the Open dialog comes up, navigate to where the file was saved and open it. (You could also double-click on lab1.html.) This will show you exactly how the document will look to other people who visit your page. Right now it isn't very interesting, since the only line of text is "Content of the Web Page Goes Here", so next we're going to fix that.
Now that you have the framework for your page in place, you can add content and a title.
Replace
"Title of the Web Page Goes Here" by a brief title.
Replace "Content of the Web Page Goes Here" by your first name. |
Test these modifications by loading the page in your browser as described above. You will have to save the file in your editor and then Reload in the browser before you will see the effect; don't forget this!
Unlike the Title tags, we put the Body tags on their own lines rather than sharing a line with the content you are about to type. This illustrates an important point of HTML syntax. The browser doesn't care where you break lines of text while you're writing your page -- it just ignores line breaks. Thus web page designers have to use a special tag to designate where to break lines when the page is displayed. This tag is the <br> tag.
Add a <br> tag after your name, then
add four more lines with the following information:
|
Test this modification by saving and loading the page in your browser.
Each piece of information should appear on its own line, so be
careful where you put your <br> tags.
Now that you've created your web page, you have to make it available to
others. Log in to Arizona.
Copy your newly created lab1.html file into your
public_html directory (which should already exist).
Once these steps are completed you can test the results by going to
http://www.princeton.edu/~your_netid/lab1.html
If you can't access your page or if it doesn't display correctly,
ask the TAs for help. This
OIT page
may also help.
At the end of most labs, you will be asked to send your results to
cos109@princeton.edu by email. Be sure to include everything we asked
for. If you have comments or suggestions, we'd be happy to get those as
well.
IMPORTANT: When you submit labs, or when you send us mail for any
other reason, please be sure that you are logged in as yourself, not
using a friend's account. If you are using someone else's account, the
mail comes from them, and we don't know who sent it!
Make sure you've done all the steps.
Make sure your web page is accessible at
http://www.princeton.edu/~your_netid/lab1.html.
Ask a friend to look at it from his or her browser.
Mail us the text of the file lab1.txt that you have been laboriously
creating, which should now contain 14 lines. Just copy and paste it if you're using
Outlook or Webmail. If you're using Pine, you can use ctrl-R to insert the file
from Unix. Do not make it an attachment!
Use the subject line "Lab 1 -- Your Name".
Make any additional comments or observations at the end of the message
and add your name.
Send the mail to cos109@princeton.edu.
The content of your mail message should be exactly the same as what's in the
file in your cos109 directory.
Send a copy of the mail to yourself.
This is a good check on whether you really sent the right stuff. Paranoids
will make sure that this mail arrives and looks right before they
leave the lab.
If you worked on a public machine, you must make a copy of any files
that you want to save. Files on a public computer are routinely erased,
so they won't be there for long after you stop using it.
For these reasons, if there are files you have to save from week to week,
you must either save them on your own machine or copy them to your Unix account.
Once you know your work is saved somewhere permanent, you can remove the files
from the public cluster machine; you should keep them on your personal
machine in case something gets lost.
If you've completed the lab, sent your email to
cos109@princeton.edu, and transferred your work to your Unix account,
you're all done.
Sharing Your Page With the World
Part 8: Submitting your work
Check your work
Mail us the work
Transfer saved work