Open Source Comes to Campus/Resources/OSX command line

The filesystem on your computer is like a tree made up of directories and files. The filesystem has a root directory called /, and everything on your computer lives in subdirectories of this root directory.

We often navigate the filesystem graphically by clicking on graphical folders. We can do the exact same navigation from the command line.

There are three commands that we'll be using at a command prompt to navigate the filesystem on your computer:

lists the contents of a directory.

gives the full directory path to your current directory.

moves you into a new directory (it stands for "change directory").

Let's practice using these commands.

Open a command prompt:
You can find the Terminal application through Spotlight, or navigate to Applications/Utilities/Terminal.

Practice using,, and
(that's an l the letter, not the number 1)

Type each of these commands and hit enter:

ls This lists all the files in your home directory.

pwd This displays the full directory path to your current directory, which is your home directory.

cd / This will change you into the  root directory.

ls This lists the contents of the  root directory.

cd Users This will change you into the  subdirectory of the   root directory.

ls You should see a list of all the files in, including the directory for your username -- your home directory.

pwd This displays the full directory path to your current directory,.

cd .. means "parent directory", so this command moved you up to the parent directory. You were in, so now you are in  , the root directory.

ls This lists the contents of the root directory, confirming where you are.

Absolute v. relative paths
When navigating the filesystem, you can use 2 kinds of paths: absolute and relative.

Absolute paths
 * An absolute path contains the full set of directories from the root of the file system up to your target file or directory. On OS X, an absolute path starts with /.
 * You can cd to an absolute path from anywhere on the filesystem.
 * This is an example absolute path: /Users/jesstess/projects

Relative paths
 * A relative path is calculated relative to your "current working directory" -- the directory you are currently in at a command prompt, as displayed by pwd.
 * This is an example relative path: projects. That path only has meaning given a current working directory. If your current working directory were /Users/jesstess, then cd projects would take you to /Users/jesstess/projects</tt> assuming that such a directory existed. If you were in /Users/brad/Desktop</tt>, then cd projects</tt> would take you to /Users/brad/Desktop/projects</tt>.

Tips

 * You can use Tab to auto-complete directory and file names. So from inside the root directory /</tt>, if you type  and hit Tab, the command prompt will auto-complete the directory name, and you can then hit enter to change into the   directory.
 * The command prompt maintains a command history. You can use the up arrow to cycle through old commands.

Review
Answer these questions. Experiment at the command line if you need to! If you aren't sure about an answer, ask a helper.


 * 1) What directory are you in after starting a new command line prompt?
 * 2) After starting a new command line prompt, how would you get to the root directory?
 * 3) How do you check what files and directories are in your current working directory?
 * 4) If you are in directory /Users</tt>, and you want to get to /Users/jesstess/projects</tt>, how would you do that?
 * 5) What are 2 ways to avoid typing out a full navigation command? (hint: one requires that you've run the command before)
 * 6) What is the difference between cd projects</tt> and cd /projects</tt>?

Success!
You've practiced using,  , and   to navigate your computer's filesystem from the command prompt.