The OS X Terminal is a very powerful tool for configuring and using a Mac, and can be used to script and program a number of aspects of the computer's operations; however, its text-based interface can be a bit of a cryptic environment to first-timers, especially when it comes to finding out what you can use it for.
There are thousands of Terminal commands available, but when you first launch it you might not have a clue where to look for them. Of course there are basic commands like "ls" for listing directory contents or "cd" for changing directory, but in addition there are text editors, string parsers, expression managers, and numerous other commands that, depending on the purpose, can make the Terminal a hidden but exceptionally powerful tool.
If you are just getting started with using the Terminal, you may find it useful to build your command vocabulary. There are many resources such as the BSD Unix command summary that will give you a quick overview of the common commands; another approach is to list all commands available to you and then look up the manual page of each individually to see what its purpose is and how it's used.
There are a number of ways to list all of the commands, but two quick ones are Tab completion and the "compgen" command. For Tab completion, simply type something in Terminal and hit Tab once or twice (and if prompted, confirm that you want the options displayed) and the system will list all available commands based on the text you entered.
If you press the Tab key without having entered any text, then the Terminal will output all possible commands (after you confirm that you want it to do so). If you do this, it helps to make the Terminal window as large as possible. You can then press Enter to display more items that are off the page until you are dropped to the command prompt again, but then you can scroll up and down to review the commands that were listed.
The second option is to list the commands and aliases available to you using the "compgen" built-in command. Simply type the following command, and you will be given the full alphabetical list of commands available to you in the system:
You can also redirect the output to a text file on your desktop called "commands.txt" to peruse later:
compgen -ca > ~/Desktop/commands.txt
Referring to this list of commands, you can then look each up using the Terminal commands "man" for the full manual page or "whatis" for a brief synopsis of what it does. For instance, unlike the command "diskutil" it may be difficult to guess what the command "xattr" does from its name, so you can quickly look this up by running the following:
Note: If the whatis command is not working then run the command "/usr/libexec/makewhatis" in the Terminal.
You can find more information and specifics on how to use the command through its manual page. There are a number of approaches to viewing a manual page for a command, with four that may be most useful:
- The man command
The default way to view a manual page is to use the man command the way the whatis command is used above, which will bring up a formatted instruction manual for the command that you can navigate through with the arrow keys or the F and B keys (for forward and backward). For example, to view the manual page for the xattr command, you would run the following:
To quit the manual page, simply press the Q key.
- The 'xman' command
If you have XQuartz installed or Apple's provided X11 windowing system for Unix (provided by Apple in OS X Lion and previous versions), then you can run the "xman" command to open up a manual page browser that you can click through. This is a quick and convenient way to not only view the manuals, but also see the available commands.
- The Web
A third resource is various Web sites that contain collections of man pages for commands. An easy approach is to simply do a Web search for "man COMMAND;" however, this may bring up platform-specific manual pages that do not completely pertain to the command in your version of OS X. A more Mac-specific man page collection is Apple's OS X Manual Pages site.
- Third-party man page utility
A final option is to use a third-party manual page tool, such as OnyX, which contains a full man page browser. Like the xman utility, this will give you a quick way to view available commands and study their manual pages. In addition, OnyX provides an option to save the manual pages as PDFs.