Master the command line: navigating files and folders
If you’ve been using a Mac for any length of time, you know that it’s more than just a pretty point-and-click, window-and-icon interface. Beneath the surface of OS X is an entire world that you can access only from the command line. Terminal (in /Applications/Utilities) is the default gateway to that command line on a Mac. With it, instead of pointing and clicking, you type your commands and your Mac does your bidding.
Why would you want to do that? For almost all of your computing needs, the regular graphical user interface is enough. But the command line can be handy when it comes to troubleshooting your Mac, to turn on “hidden” settings, and other advanced chores. Many of the hints we publish on the Mac OS X Hints website require the use of the command line. It’s a good idea for anyone who isn’t an utter beginner to be familiar with it.
If you aren’t already familiar with OS X's command-line interface, this article is the first in an occasional series that’ll get you up to speed. The plan is to cover the most important commands you need to know and show you how to use them. First up: How to navigate the file system from the command-line prompt.
By default, when you open Terminal, the first thing you’ll see is something like this:
Last login: Tue Apr 23 13:40:35 on ttys000 walden:~ kirk$
The first line shows the last time you logged into your Mac via the command line; that’s the current time, when you’re using Terminal. The second line is the prompt, and while it can change from system to system depending on configuration, by default it contains several bits of information.
In my prompt, walden is the name of my Mac (same as the name in the Sharing pane of System Preferences), and kirk is my user name. The ~ shows where I am in the file system of my Mac; ~ is a shortcut that means the current user’s home folder. (In the Finder, that’s the folder with your user name and the house icon.) Finally, the $ is a character that the bash shell (the default interface that Terminal uses) displays to indicate that it’s ready to accept a command.
What’s in a folder
When you first get to the command line, you’re in your home folder. While you’re there—or when you’re in any folder (directory in Unix-speak)—you might want to know what’s in it. To do that you use the
ls (or list) command. Type
ls and press the Return key, and you’ll see the folders (and/or files) in the current directory.
The output of the plain
ls command is pretty sparse; it shows you the names of files and folders contained in the current directory (including some familiar ones such as Movies, Music, Pictures, and so on). Fortunately, you can add a number of optional switches to the
ls command that allow you to see more information. So, for example, try typing
ls -l (that’s a lower-case L), then pressing Return. You’ll see something like this:
walden:~ kirk$ ls -l
drwx------+ 4 kirk kirk 136 Mar 31 14:56 Desktop
drwx------+ 17 kirk kirk 578 Apr 2 12:20 Documents
drwx------+ 18 kirk kirk 612 Apr 23 13:06 Downloads
drwx------@ 19 kirk admin 646 Apr 22 09:59 Dropbox
drwx------+ 98 kirk kirk 3332 Mar 30 19:29 Library
drwx------+ 6 kirk kirk 204 Dec 4 09:04 Movies
drwx------+ 9 kirk kirk 306 Mar 23 09:52 Music
drwx------+ 19 kirk kirk 646 Apr 5 17:34 Pictures
drwxr-xr-x+ 7 kirk kirk 238 Mar 6 07:51 Public
drwxr-xr-x+ 8 kirk kirk 272 Jul 19 2012 Sites
Don’t worry too much about what all that means right now; we’re just getting our feet wet. The point is that
ls can provide additional information about files and folders, depending on the options you specify. In this case, that additional information includes the name of the user who owns each item in the directory. (That ownership is part of the Unix system’s file-permissions regime.) The
kirk kirk next to most of those items above means that each one is owned by the user kirk, who is in the group kirk. The other understandable bit of information next to each file and folder is the date and time each one was last modified.
One other handy option: You can view invisible files—ones that the Finder doesn’t normally show you—by typing
ls -a. (These hidden files all have dots (.) in front of their names.)
When you’re in the Finder and you want to move to another folder, you find that folder and double-click it. From the command line, you use the
cd (or change directory) command instead. So let’s say you’re in your home folder and want to peek inside the Downloads folder. To do that, you’d type
cd Downloads. (Remember to always type a space after any command that has an additional argument, such as the name of a directory in the previous example.) Once you’ve done that,
ls will show you the contents of your Downloads folder.
Here are a couple of quick tricks for moving around in your Mac’s file system.
- If you type
cdand press the Return key—with no directory specified—you’ll go back to your home folder. (You can also type
cd ~to go there.)
- If you type
cd /, you’ll go to the root level of your startup disk.
- If you type
cd ..(that’s two periods), you’ll go to the directory above the one you’re currently in. So if you’re in your home folder, and type
cd .., you’ll go to your Mac’s /Users folder.
- And if you type
cd -(hyphen) you’ll go back to the directory you were in before the last time you issued the
That should be enough to get you started. Try playing around in Terminal, exploring your folders and files with just those two commands. In future articles, I’ll show you how you can apply the
cd commands in more depth, so you can be comfortable flitting around your file system from the command line.