Archive for October, 2006

Navigating files and folders

If you're new here, you may want to subscribe to my RSS feed.

Each time you open Terminal, you begin in your Home folder. To confirm this, type pwd and press Enter. The command pwd tells you where you are (i.e. your “Present Working Directory”). Any commands you type there will by default occur in this folder (unless you refer to some other directory explicitly.)

After opening Terminal and typing pwd on my computer, it returned /Users/richard.

To navigate to a new folder, use the cd (”change directory”) command. For example, to switch to the Applications folder, type cd /Applications. You can then type ls to list all of your Applications.

To move deeper into the hierarchy, use cd and the name of the folder. For example, if I’m in /Users/richard, I can type cd Movies to move into the Movies folder. I’ll then be in /Users/richard/Movies.

To move back a folder, use two dots (..). For example, if I’m in /Users/richard and type cd .. I will then be in /Users.

Directories, Files, and Path Names

In Unix, folders are called directories. Files are still files. The location of a file is called its path. The very top folder (or bottom folder depending on how you think about it) is called the root directory. This root directory is the one you see when you double click your hard drive. It contains the Applications, Library, System, and Users folders.

Here is how you refer to various parts of the file system in Unix:

  • The forward slash (/) refers to the root folder.
  • A path name beginning with a slash (/) is an absolute path. For example, the path /Applications refers to the Applications folder, no matter where you currently are. To see a list of Applications, type ls /Applications. It doesn’t matter where you currently are because it’s an absolute path.
  • A path name beginning without a slash is a relative path. For example, if you are currently in your Home folder, the path Documents refers to the Documents folder under your Home folder. While in your Home folder, type ls Documents to see a list of your documents. If you were to type ls Applications (without the slash), you’d likely see an error since you (probably) don’t have an Application folder inside your Home folder, and the path is relative to where you currently are.
  • The tilde (~) refers to your Home folder. (It’s also an absolute reference, despite not having a preceding slash.) To see what’s in your Home folder, type ls ~. To see your own Documents type ls ~/Documents. It’s an absolute reference that works from anywhere. For me, the path /Users/richard/Documents is the same as ~/Documents.
  • You can use the tilde with someone else’s username to refer to their Home folder. For example, to see what’s in Mary’s Home folder, type ls ~mary or to see what’s in John’s Documents folder, type ls ~john/Documents.

You should now be able to refer to any path on your hard drive. Did I leave anything out?

How to get help with Unix commands: the “man” command

When discussing what a Unix command is, I mentioned that you can alter the function of a Unix command by using flags or arguments. For example, to list all the files in your current folder, you use the ls command. To reverse its order you add the “r” argument: ls -r. But how do you know which arguments to use?

Unix has a built-in manual called the man system. Each Unix command comes with a manual page which you can access by typing man and then the name of the command. For example, to get help with the ls command, open the Terminal and type man ls.

Each manual page shows the name, synopsis, description, examples, and more for that command. You can use the up and down arrows to scroll through the entry. To skip Forward a page hit “f”; to skip Back a page hit “b”. When you’re done reading the manual page, his “q” to quit.

The man command is one of the most important commands for learning and using Unix. I use it daily.

On a side note, these manual pages are also available on the Internet, including at Apple.com: Mac OS X Man Pages

Back to business

My two weeks in Brazil were awesome but I am also glad to be back. If you’re joining us for the first time, this site is all about using Unix (Terminal) on your Mac. If you need some background, start here: