The filesystem:

One of the most important things about any computer system, and certainly Unix is no exception, is it's filesystem, or in other words, the organization by which files are organized, accessed and stored.

The Unix file system starts at slash '/', this corresponds to the "root" directory, or the absolute beginning of the filesystem. From '/' all files and sub-directories grow. Start thinking of the filesystem as a tree, with '/' as the base of the tree. Your home directory resides somewhere on a limb of this tree.

A directory may contain files, executables, and sub-directories. Here is a simple filesystem for your perusal:

					/
					|
	       ,--------+---------+-----+--+--------+----------+----------.
	       |        |         |        |        |          |          |
	      usr/   vmlinuz     tmp/     file     u2/      .mailrc    .cshrc
	       |                                    |
	  ,----+--+------.           ,------+-------+------+-------.
	  |       |      |           |      |       |      |       |
	local/   lib/   tmp/        h0/    h1/     h2/    h3/    stuff/
	                                    |
	                      ,------+------+------+------.
	                      |      |      |      |      |
	                     arc/   dark/  ice/  jbii/  yellow/
Notice, how it is like an upside down tree, with files as leaves, and directories like branches. Within every directory there are at least two directories, they are '.' (dot) and '..' (dot-dot), these correspond to current directory and previous directory respectfully. You'll be using these directories later on. Files that begin with a '.' (dot) are considered in the unix realm to be "hidden" files, although they really aren't any different than any other file, they just aren't listed by default when a user does a directory listing. These hidden files are nice to put configuration information for various programs you'll be using without having to see these files all the time.

Of considerable importance in unix is the concept of the 'path'. You'll be dealing with a lot of path's in unix: paths for commands, home directory path, current working directory path, relative paths, etc.. A 'path' can start in one of four places, at root (/), from your current directory (.), from your previous directory (..) or from a sub-directory. From any of these starting points you build up a directory path. After each directory name a slash must follow, unless it is at the end of the path, thus if on our imaginary tree above, our current directory is /u2/h1/ice and we wanted to construct a path to /usr/tmp we could write it in several ways.

Absolute: /usr/tmp
Relative: ../../../usr/tmp
Even this is valid: ./../arc/../../../usr/./tmp/../tmp

The previous path string is examined right to left, a single '.' would be ignored, a '..' would go back a directory, and everything else adds to the path. Even though it looks complex, if you follow it carefully, you'll see it ends up in /usr/tmp (twice even!).