Moving from Macs to Unix
Clare Bates Congdon
Spring, 1998

Historically (to the extent that one can use that word with computers :-), Macs and Unix were very different in their intentions and expected audience. Macs were designed for the masses, while Unix was aimed at the cognoscenti. Macs are designed to shield the average user from the inner workings of the machine; Unix puts the inner workings in your face.

If you're a PC user, it's very comparable to the difference between Windows and DOS: The primary difference is the user interface. Macs (and Windows) use a Graphical User Interface (aka, a GUI, where you point and click), while Unix and DOS use a command-line interface (where you type commands to the computer).

Fortunately for folks who don't want computer guts in their face, Unix is evolving into a more user-friendly, GUI-based environment. (And Macs are evolving to allow more command-line interfaces for the folks in the trenches who need to work that way.) There is now much that you can do with the point and click approach in Unix.... But you can't do everything that way.

What Unix Buys You

Learning Unix is a major pain. So why would you want to do it? Here are some reasons:

MultiTasking

One of the things that Unix has over Macs is that Unix machines can easily "multi-task": They can (virtually) do several things at once. (Macs are moving in this direction with OS8, but are still a little quirky in this regard.) A Unix machine can easily support several simultaneous users, all working on different things.... As long as each user has their own terminal and keyboard. Furthermore, a single user can be doing several things at once. I can be running a program that's doing some number crunching at the same time that I'm surfing around the web at the same time that I'm running a goofy little animation that's constantly changing.

The computer is not literally able to do all these things "at the same time", but is smart enough to know how to switch between them fast enough that for all intents and purposes, they are happening at the same time. You won't really begin to notice until there are too many people trying to do too many things all at the same time, in which case, things will start to slow down. Applications that use a lot of memory, such as Netscape, are more likely to contribute to the slow-down effect.... which is felt by everyone who's using that computer and not just the web surfer who has 4 different Netscapes open at the same time.

Filespace for Individual Users

On a Unix machine, several users may be using the machine simultaneously, but each user has their own "filespace" for keeping their work. It is up to individual users to determine whether their files can be read, edited, or executed by other users on the system. Typically, there are some files that you'll leave for everyone to see, and other files that you'll want to be kept private (such as your mail file). Since Macs are single-user machines, the way that you access other people's files is generally over a network.

The downside to the shared filespace concept is that one user who saves several huge files can fill up the disk and prevent you from being able to save your files! For this reason, many Unix accounts are set up with quotas, which limit the amount of disk space that can be used by each user.

Control and Efficiency

There is no denying that pointing and clicking is the way of the future. But there are some things one needs to do on a computer that don't lend themselves to this approach. (As designers get better and better with GUI design, this list is becoming shorter.)

These days, probably the main advantage to a command line is efficiency: If you know what to type, you can accomplish in a few keystrokes what would take several minutes with point-and-click navigating. (Of course, knowing what to type is not to be underestimated.)

Decoupling of applications

One of the most frustrating things about Macs for those of us who first learned Unix is the fact that one has to launch an application to look at or print a file. In Unix, there is not such a strict association between a file and the application that created it. For example, there is a generic printing application that sends a printer to a file.... Other applications make use of the printing application, but if you want to invoke it directly (without going into an editor), you're free to do so.

Related Terminology and Functionality

In starting to use Unix, you'll have to learn some new terminology to refer to operations that you're already used to doing on a Mac as well as new approaches for doing these operations. That is, you'll largely be typing to make things happen instead of clicking the mouse.

Both systems use the word "file" the same way. Unix tends to use the word "directory" to refer to the same thing as the Mac "folder". On Macs, we think of having a hierarchy of folders, where files are inside folders (or the harddrive), and folders may be inside of other folders, etc. On Unix, files are inside directories (or on the harddrive), which may be inside other directories, etc.

Here's a chart of the relationship between some of the things you'll want to do... Sorry I haven't had time to format it more nicely yet.

function        Macs                            Unix
---------------------------------------------------------------------------
delete a file   drag file icon to the trash     rm file
                and empty the trash             (rm is short for "remove")
                (file is there until trash      (the file is immediately "gone")
                 is emptied)

rename a file   edit the name under the icon    mv [file] [new name] 
                                                (mv is short for "move")

move a file     drag file icon into a new       mv [file] [new directory]
                folder                          (renaming and moving is the
                                                 same concept in Unix)

copy a file     option key                      cp [file] [new name] 
                and drag the file icon          (cp is short for "copy")
                (must be copied to a new        (the new name can also be a 
                 folder)                         directory)

open a          click on folders to open        cd [dir] (specific directory)
folder /        click on box to close           cd ..    (to go up one level)
directory                                       cd       (no args -- to go "home")
                                                (cd is short for 
                                                   "change directory")


look at a       open the folder                 ls       (the current directory)
folder /                                        ls [dir]
directory                                       (ls is short for "listing" the
                                                  directory)

The concepts above don't quite line up between Macs and Unix:

On a Mac, "opening" a folder is the same as "looking" at its contents.

On a Unix machine, there is always a sense of the "current directory", to which your commands will apply to (unless you specify otherwise). When you "open a directory" on Unix, you're changing the current directory.

Note that on a Mac, you cannot look at the contents of a folder (directory) without opening the folder. In Unix, you can list the contents of another directory without making it your current directory. On a Mac, you don't care, about the opening vs. looking distinction. On Unix, the fact that you don't have to change to the directory before looking at its contents can enable you to be faster about your business. (Yee-hah.)

Note: most unix commands have options to change the behavior of the command. For example,

    ls -l to get a "long listing" of the directory
        (which gives you more information about the files than regular "ls")
    rm -i [file] 
        (to "inquire" whether you really want to remove the file)

function        Macs                            Unix
---------------------------------------------------------------------------

look at a       open the file with an editor    open the file with an editor
file            (such as SimpleText)            (such as emacs, vi, or textedit)

                                                cat file      
                                                (short for "concatenate")
                                                  cat will spew the contents of
                                                  a file to the terminal

                                                more file
                                                  more will let you look at one
                                                  page of a file at a time 
                                                  (space bar moves you to the
                                                  next screenful; q quits)
                        

figure out where        ???                     pwd     
 you are right now                              (short for print working directory)
 in the file hierarchy

The above is another concept that doesn't quite line up between the two systems. In Unix, you always have a current directory and all files have a "full name" that includes the information about the name of the directory the file is in, and the name of the directory THAT file is in, etc., etc., up to the harddrive of the machine.

For example, the full name of this file on mainline is:
/www/Park10/using-unix.html

which means that there is a directory on the harddrive called "www", and that directory has a directory within it (called a "subdirectory") called Park10, and that directory contains the file called using-unix.html.

If my current directory is
/www/Park10

I can edit this file by talking about
using-unix.html

But if my current directory is something else, I can still get to the file by using it's full name.

On the Macs, each application tends to have a default folder that it works with, and which it starts with when you want to save or open a file. You can get to files in other folders by navigating your way up and down the file hierarchy using the dialog box (when you try to save or open a file). There are some applications that will let you see or refer to the full name of the file, but for the most part, the user is shielded from this.

Note: The full name of a file is called its "path". So instead of talking about the "full name", as I have above, Unix geeks will talk about "the full path" of the file.


function        Macs                            Unix
---------------------------------------------------------------------------

make a new      new folder menu option          mkdir dir
folder /        (from the Finder)               (short for "make directory")
directory

remove an old   drag to trash                   rmdir dir
folder /        (and empty trash)               (short for "remove directory")
directory                                          it's gone immediately
                                                   this works only if the directory
                                                   is empty -- you have to delete
                                                   all the contents first.


Getting help    e.g., Apple Guide, and		man [command]
                some applications have		  (which can be unhelpful, because 
                  built-in help			  you don't always know the name
						  of the command you need)
						(man is short for "manual")

						man -k [concept]
						(I don't know what -k is for)
						  this is sometimes helpful,
						  but sometimes useless. e.g.,
						  try man -k print for several
						  pages of possible commands)

Printing	through the menu of the		lpr or lp (lpr on mainline)
		application			(lpr is short for "lineprinter",
						  an anachronistic term)	
	

A Fledgling Attempt at a Unix Tutorial

It's hard to know where to begin. Ah! Logging on.

Logging on to a Unix system

Since Unix systems are designed for multiple users (who each have their own files, etc.), the first thing you have to do is login. You should have a prompt or a login window that asks you for your username and your password.

Telnet to your account on Mainline

find telnet in the internet/network folder
choose open connection from the file menu
specify mainline.brynmawr.edu
click on connect button
type login name
type password
(and you're logged on to mainline)

Login to Mainline, Using MacX

Your user name on mainline will be the same as your Bryn Mawr email address: your first initial and last name (for most people). Your password is something that generally only you know, but when you get a new account, you'll have to ask someone else (e.g., Bogdan) for your password.

You should immediately change your initial password to something that you're able to remember and that only you will know about.

Different windows

If you were successful at logging in, you should have a window that has a prompt. These windows are often called "xterms", which is a little confusing because that's often what the monitor is called too. Xterm is the name of a Unix application that gives you a specific window that has a prompt. More generically, if you have a prompt that is letting you type Unix commands, you are running a shell. An xterm is a specific kind of window that gives you a shell. (If you login through telnet, instead of through MacX or a terminal, you'll have a shell, but not an xterm.)

Remember that potentially everything you do on a Unix machine can happen by virtue of you typing commands in the shell. You can edit files there, move around to different directories, read your email, run programs, etc. But it's likely that you'll use a shell that way only if you're using a telnet session. Otherwise, you'll start up programs that open up new windows, and the windows will have menus, etc. If you're interacting with programs like this, the interface for these specific windows will be similar to what you're already used to on the Mac.

Depending on how your account is setup, when you login to mainline from a monitor (as opposed to through telnet), you may see just one window -- an xterm or similar application -- or there may be additional windows. For example, some Unix operating systems will give you a file/folder point-and-click interface that's very similar to the Macs.

Some On-Line Unix Guides

______________________________________________________________________

Maintained by:

Clare Bates Congdon (ccongdon@brynmawr.edu)
Paul Grobstein (pgrobste@brynmawr.edu)
______________________________________________________________________