Terminal provides a command line interface to control the UNIX based operating system that lurks below OS X. Here's everything you need to know about termial, and what it can do for you and your Mac.
Of all the tools tucked away in OS X's Utilities folder, few are as mis-understood as Terminal. At first glance, it's the very antithesis of what the Mac is all about. Isn't the whole point of a graphical user interface that we don't need to concern ourselves with learning arcane instructions and typing them on a command line? Well, yes it is, but learning those commands and using them allows you to customise elements of your Mac, perform tasks that would otherwise be cumbersome or require additional software, and troubleshoot quickly when things go awry.
What is Mac Terminal?
The first thing to understand about Terminal is that it's just an application and it lives in the Utilities folder in Applications. You launch it like any other and when you do, you'll see Apple's implementation of a Unix command-line environment, known as a shell. There are various types of shell; Apple uses one called Bash.
The title bar of a Terminal window displays the name of the current user, the type of shell, and the size of the window in pixels. If you look at the command-line inside the window, you'll see that each line starts with the name of the Mac and is followed by the name of the current user. The 'cursor' is indicated by a shaded box.
You can run other shells with Terminal, but you'll have to install those yourself. Commands in Unix are shell-specific, so it's important, say when you're following tips written for a different flavour of Unix, that you use the right shell for the commands, or vice versa.
How to use Terminal on a Mac
We're getting ahead of ourselves, however. Using Terminal is straightforward, you type a command on the command-line and press Return to execute it. A command has three elements to it; the command itself, which calls a specific tool, an option which modifies the command's output, and an argument, which calls the resource on which the command will operate.
Often, the argument takes the form of a specific file, in which case you need to type the file path at the end of the command. There is a shortcut, however. If you locate the file in the Finder, you can drag and drop it onto the Terminal window and Terminal will extract its path and slot it into the command for you.
There are a few rules that you need to bear in mind when using any command-line interface. One of these is that every character, including spaces, matters. So if you copy a command from a website, magazine, or book, you need to make sure you type it exactly as it's shown.
You can re-run previous commands without re-typing them by using the up arrow on the keyboard to navigate to the command and then pressing Return. And you can interrupt a command by pressing Control-C. To see a list of available commands, hold down the Escape key and then press 'y' when asked if you want to display a specific number of possibilities. You'll see a list of commands, with their meanings next to them. If you press spacebar more commands will load. Press 'q' to exit and return to a command prompt.
Unix has its own built in manual and you can call it in Terminal to find out more information about a command. To use it, type man command, where 'command' is the name of the command on which you want more information.
When you type a command in Terminal, it's executed in your current location, unless you specify otherwise. When you launch a new Terminal window, that location is at the top level of your Home directory, so every command is relative to that location. To change location, use cd followed by the path of the location you want to move to. To return to the default, type cd ~/ and your location will change from wherever you are to your Home directory. You can view a list of the files and folders in your current location by typing ls to list them in Terminal.
The LS command displays the contents of a directory
How does the command-line work
To get an idea of how the command-line works, let's start with some basic commands. Create a file in Text Edit called TestFile and save it to a folder called Test inside Documents in your Home Directory. In Terminal type cd Documents/Test to navigate to the Test directory. Now type ls to display the contents of the directory. You should see the result 'TestFile.rtf.'
The cp command is used to copy a file.
You can make a copy of the file using the cp command. Type cp TestFile.rtf TestFile-copy.rtf and check the result in the Finder. We're now going to use Terminal to move the copy to another directory, which we'll also use Terminal to create.
Moving a file using Terminal
Type cd then drag your Documents folder onto the Terminal window and press Return. That will place you in the Documents folder in your Home Directory. Now type mkdir Test2 to 'make' a new directory called Test2. To move the file TestFile-copy.rtf to the Test2 directory, type mv ~/Documents/Test/TestFile-copy.rtf ~/Documents/Test2/TestFile-copy.rtf The '~' is shorthand for your Home directory, so '~/Documents' is the Documents folder in your Home folder. You can also use the mv command to rename files. So, in our example above, instead of TestFile-copy.rtf, you'd give the moved file a different name. To rename files without moving them, just remove the second directory from the command.
To delete the test files, use the rm command. So, to remove our original test file, we'd type rm ~/Documents/Test/TestFile.rtf That will delete the file without asking for confirmation. If you're deleting files, it's good practice to double-check, so to add a confirmation step put -i immediately before the file name.
Those are just a few of the most commonly used Terminal commands. But the should give you a flavour of how to use this most under-appreciated of OS X utilities. It should also show you that there's nothing to fear in using Terminal, so long as you take the time to learn the basics and understand what your doing.