Important: Lab session schedule, location, and other useful information
By the end of this lab, you will be able to:
There are 6 parts to this lab:
Part 1: Introduction
Part 2: Operating Systems
Part 3: File Systems
Part 4: Using Unix
Part 5: Moving Files
Part 6: 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 computer, how to access a different operating system to run programs there, and how to transfer files from your computer to another. At the end, you'll be asked to submit answers to some questions that will be asked along the way.
You can do this lab on your own computer or in a cluster, where the computers run Windows and/or MacOSX. If you are not at a lab session, however, you won't be able to ask questions of the lab TAs: when things don't work or you can't figure out what's wrong, you're on your own. You are welcome to bring your own laptop to a lab session to get help.
Since software and hardware change every year, often in subtle ways, inevitably something won't work exactly as described here. There are so many versions of Windows and MacOSX that it's not possible for us to catch all the differences and to spell out the steps as clearly as we would like. If you find something wrong with the instructions, the lab TAs should be able to help. If not, do what you can and don't worry about it. In any case, please let us know. Thanks.
Windows, Mac OSX, and Unix are operating systems, which are programs that manage the physical hardware of a computer for you. An operating system lets you run programs like browsers and word processors and iTunes; it lets you access information on disks; it lets you use attached devices like printers and scanners; and it lets you communicate with other computers via a network.
"Windows" and "MacOSX" are families of operating systems from Microsoft and Apple respectively. Window 8.1 and Mavericks (the latest version of MacOSX) were both released in October 2013. Unix and Linux are also operating systems, not from Microsoft or Apple, that run on a wide variety of hardware, including phones, tablets and e-book readers. All operating systems perform the same basic functions, though with myriad differences in style, philosophy, and details.
Operating systems allow you to run several programs at once, switching your attention from one to another at will. Some, like Unix, are mostly controlled by typing on the keyboard. Others have a more graphical interface and are mostly controlled with a mouse. MacOSX has a glossy graphical interface but is actually a Unix system underneath.
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, so every system has text editors that let you create plain ASCII text with no formatting or extraneous content.
On Windows, you can use Notepad or Textpad, or you can use Wordpad if you save your files as ".txt" format. You can find these programs from the Start menu in places like All Programs | Accessories or All Programs | Basic Applications. Do not use Word to edit plain text files.
On a Mac, you can use TextEdit (in Go | Applications). Unfortunately TextEdit is sometimes too smart for its own good. Use Preferences | New Document to set "Plain Text". Do not use "rich text format" (.rtf). Under Open and Save, uncheck the box that says "Add '.txt' extension to plain text files".
For the rest of this lab, you will record your work in a plain ASCII text file called lab1.txt as you go along, then submit it at the end.
Start your chosen editor. Do this to begin collecting data for submission:
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; it lets users save information, organize it, and retrieve it as needed. The same organizing principles that are useful for the information on a disk are also useful for removable media like USB drives, DVDs, and even for information physically stored on other computers and accessed over a network, so these are packaged as file systems as well. Although the physical structures vary greatly, the operating system makes them all look the same to users, a good example 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, a 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:". If there is a CD or DVD drive, it takes the next letter, and is thus often "D:". Other plug-in devices take up the next free letters, so if you plug in a USB drive, it will probably be called "E:".
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. On cluster computers, this should already be set up for you; for instance, on Windows the Personal Files icon accesses your H: drive, and on MacOSX, there's a disk icon labeled with your netid that leads to your H: drive.
For your own computer, this OIT page explains how to make your part of the OIT Unix file system visible on a Windows PC, and 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 double-click on a folder, it will list 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 that do something -- and you 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.
You can look through folders and find files with your personal folder icon reachable from the Start menu (or My Computer on older versions of Windows) and the Save (and Save As... or Open) dialog box. If you want to move files around or find a program and start it, however, then Windows Explorer (not to be confused with the Internet Explorer browser) is convenient.
Start Windows Explorer; it will usually be under Programs or All Programs | Accessories, and is an icon on the task bar on the cluster computers.
Explorer gives a split-screen view of the file system. To the left is a folder hierarchy. When you click on a folder, its contents will be displayed on the right. Notice that some folders have little triangles next to them. This means that the folder has subfolders. By clicking on the + or - or triangles, 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 if you saved it there. (The names will roughly correspond to what you actually see on the Windows Desktop.) Now look through the menus at the top. Push the Alt key to get a second menu above the original. Try left-clicking and right-clicking "File", "Edit", "View", "Tools" and "Help" on this upper menu to see what options are available. Don't choose any of these options yet! To move a file, click on it once, then 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 click on a different folder and select "Paste" to put the copy there.
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. (In Windows, view is also an icon below the Search Desktop bar at the upper right.) 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: Search. Unfortunately, the ways to access Search have changed with each version of Windows. Consider searching C: (Cluster_HD) for all files containing ".exe" in their names. Try to open Start, then double-click Computer. When the computer window opens, double-click the "C:" icon and enter "name:.exe" in the Search box at the upper right. Or you can just type name:.exe in the search box on the Start menu, then click "Search Everywhere" to bring up a search window; then select Advanced.
You are now going to try 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 information.
At the end of this part you should have 5 lines in lab1.txt.
Finder is the all-purpose program for exploring the Mac file system; it's the first item on the task bar. If you double-click on the icon for a hard drive (HD) or the icon for any folder, Finder will display the contents.
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. These alternate views are selected at the top left of the Finder window. Select the multi-column view. To the left is a folder hierarchy. When you click on a folder, its contents will be displayed to the right. Now select the list view. 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. If you double-click on a folder, its contents will be displayed in the Finder window.
From the multi-column view of the hard drive, find the file lab1.txt by clicking on 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, except disk icons may be missing on a cluster computer.) 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 Edit | Paste to put the copy there. Some of these options are also available if you right-click on the file (or equivalently Cntl-click, that is, click while pressing the Control key -- good for a one-button mouse).
As mentioned above, a Mac .app is really a folder, with an executable file several levels down. As an experiment, right-click on the name of an application (reached by Finder | Applications), then Show Package Contents to expand the folder; look in Contents and then in MacOS.
Each Finder window has a search box at the top right corner. However, to get more search options, select Find from the File menu at the top left of the display. A Finder search window with a set of options will open. For example, select This Mac, File Name, name, contains and type "image" to find all file whose names contain "image".
You are now going to use Finder search 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 information.
At the end of this part you should have 5 lines in lab1.txt.
Unix is an operating system; like Windows and MacOSX, 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. 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. We will lump Linux and variants under the generic term "Unix", since for our purposes they are all the same.
Many of the Internet and Web services that you use run on Unix computers, 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 files on Unix systems, so it will help you to understand at least the rudiments of how to access and use the campus Unix systems.
MacOSX is also a Unix variant. Although the Mac has a glitzy graphical interface, 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.
Windows is dominant in offices and homes, but Unix is often used to support infrastructure functions (the back office); familiar sites like Google, Amazon and Yahoo all use Unix or Linux.
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. 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 computer, 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 and let you do operations that aren't possible with the point and click interface.
Using the Webserver Search at
netcraft.com (on the right
side, "What's that site running?"), find a major web site that uses Unix
or Linux. (Ignore load balancers and content distribution systems like
F5-Big-IP, Netscaler and Akamai.)
Add a line to lab1.txt with
the site name and the name of the specific Unix variant.
Find a web site (other than microsoft.com) that
uses Windows Server. 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. You will also see how Unix provides for the permanent storage of your files.
If you are using a public cluster computer, you can't save files on it. The Desktop you see is not stored on the hard drive of the computer at which you are sitting; it is stored in 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.
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 need. And you can read mail just fine from your own computer or phone.
But sometimes you simply have to get to the place where the information really is. For this, you have to use a program that lets a user on one computer use another computer over a network connection. There are a variety of options. One common choice is a program called SSH, which stands for "Secure Shell". The important word here is "secure" -- information that travels between your computer 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 computer.
Another choice, which is encouraged by OIT on Windows cluster computers, is a program called PuTTY, which does much the same thing. The cluster computers have PuTTY, and you can download it for your own computer from here; use putty.exe for Windows on Intel x86. If you got the standard software distribution, it's already installed. (In spite of its name, PuTTY has nothing to do with Princeton University; it's an open-source program from England.)
On a Mac, you can use the Terminal application to run SSH and access your OIT account.
Follow these instructions to connect to Arizona, which is a pair of OIT computers running Linux. We'll just say "Unix" from now on, since things are mostly exactly the same.
Start by opening SSH or PuTTY. This process will be different depending on which program you use and what operating system you have. Instructions for Mac OS X and Windows are provided below. In either case, if you get a message that says something like
answer yes. You may also be asked whether you want to save the host key to the local database; "no" is fine in all cases, but you can also say "yes" if you're on your own computer.The authenticity of host 'arizona.princeton.edu (128.112.128.42)' can't be established.
RSA key fingerprint is ab:62:85:30:20:81:68:a2:7b:df:a2:72:6e:8f:92:a0.
Are you sure you want to continue connecting (yes/no)?
If you have trouble logging in, read this:
Important: As of fall 2013, student Unix accounts are no longer activated automatically; you have to do this yourself, as described on this page.
Run PuTTY by selecting it from the Start menu. It will likely be listed under "(All) Programs | ..." If that fails, consult a TA.
If there were no problems you will be asked for your password. Enter it and push Enter. You can ignore (No or Cancel) anything else that happens first.
Note: Your password may not be echoed with asterisks as is common on PCs and Macs; there may be no response at all. Just type and push Enter when you're done.
If you are running MacOSX start the Terminal application, which is in Applications | Utilities.
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 jcollege, you should type ssh
jcollege@arizona.princeton.edu. After you have typed this line,
press Enter or Return. You will be asked for your password.
Enter it
at the appropriate time, then push Enter or Return.
Note: Your password may not be echoed with asterisks as is common on PCs and Macs; there may be no response at all. Just type and push Enter when you're done.
You should see a flood of text lines that finally ends with a "prompt" that probably looks like this:
phoenix.Princeton.EDU%The prompt says that you are now connected to one of the computers in the Arizona cluster (phoenix 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 OSX, 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.
Note: When logged into UNIX, you may have to use the "DEL" or "Delete" key instead of "Backspace" to delete a character.
Try the following commands. For each, type the command name, then push Enter or Return.
mkdir cos109
and then push Enter. If you now run the ls command again, your new directory should be there. This is rather like File | New Folder in Explorer. If you already have a cos109 directory, you will get a warning message, which you can ignore.
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 ("print working directory") to print the name of the directory you are currently working in.
At this point, you should have 11 lines in lab1.txt. You can log out of Unix with the logout command.
You will now return to working within your Windows or Mac operating
system. If you are working on your own computer, make sure your H:
drive is visible as explained in Part 3.
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 keyboard actions: for Copy, use Ctrl-C or, on a Mac, Command-C, and for Paste use Ctrl-V or, on a Mac, Command-V. Those shortcuts 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 cos109 directory as seen through the H: drive, Personal Files, 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, or it may put the entry at the end instead of in order. To be sure you have a consistent and up to date display you may need to use View | Refresh. Finder does this better, though it can be slow to notice a change.
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 PuTTY/SSH window or logged out 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 PuTTY/SSH or Terminal window type
cd cos109to verify that the file you just transferred is there and about the right size. It should be the same size as in Desktop, though some operating systems report the size only to the nearest KB. The file size in bytes is the number just before the date.
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 did, 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."
At the end of most labs, you will be asked to submit your results by uploading some files.
Upload lab1.txt (which should now contain about 12 lines) to the CS dropbox for Lab 1 at http://dropbox.cs.princeton.edu/COS109_F2014/Lab1.
If you are working on a cluster computer, mail the file to yourself as well. 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 or turn off their computer.
Files on a public computer are routinely erased, so they won't be there for long after you stop using it. This won't matter if you're using your H: drive, as you normally would, which includes using your cluster Desktop. If you're working on your own computer, it's wise to back up your work on your H: drive or a flash drive as well. Backing up frequently is a good habit to get into.
If you've completed the lab, uploaded your file, and made a backup copy of your work, you're all done.