Finding Help
On an average Linux system, hundreds of commands are available—way too many to ever be able to remember all of them, which is why using the help resources on your computer is so very important. The man command is the most important resource for getting help about command syntax and usage. Apart from that, you can show a compact list of command options by using command --help.
Using --help
The quickest way to get an overview of how to use a command is by running the command with the --help option. Nearly all commands will display a usage summary when using this option. In this summary you’ll see all options that can be used with the command. Notice that there is no strict order for the options; you can use them in any order you’d like.
The list of options that is shown in this way is of use mainly when you already have a generic understanding of how to use the command and need a quick overview of options available with the command—it doesn’t give detailed information that will help users who don’t know the command yet.
Using man
When using the Linux command line, you will at some point consult man pages. The man command is what makes working from the command line doable. If you do not know how a command is used, the man page of that command will provide valuable insight. This section covers a few man essentials.
To start with, the most important parts of the man page in general are at the bottom of the man page. Here you’ll find two important sections: In many cases there are examples; if there are no examples, there is always a “See Also” section. The topics you find here are related man pages, which is useful if you have just not hit the right man page. To get to the bottom of the man page as fast as possible, use the G command. You can also type /example to search the man page for any examples. Figure 2-1 shows what the end of a man page may look like.
Figure 2-1 Sample man Page Contents
Finding the Right man Page
To find information in man pages, you can search the mandb database by using apropos or man -k. If the database is current, getting access to the information you need is easy. Just type man -k, followed by the keyword you want to search for. This command looks in the summary of all man pages that are stored in the mandb database. If you get “nothing appropriate” when running this command, consult the section “Updating mandb” later in this chapter. Example 2-2 shows a partial result of this command.
Example 2-2 Searching man Pages with man –k
Based on the information that man -k is giving you, you can probably identify the man page that you need to access to do whatever you want to accomplish. Be aware, however, that man -k is not perfect; it searches only the short summary of each command that is installed. If your keyword is not in the summary, you’ll find nothing and get a “nothing appropriate” error message.
When using man -k to find specific information from the man pages, you’ll sometimes get a load of information. If that happens, it might help to filter down the results a bit by using the grep command. But if you want to do that, it is important that you know what you are looking for.
Man pages are categorized in different sections. The most relevant sections for system administrators are as follows:
1: Executable programs or shell commands
5: File formats and conventions
8: System administration commands
There are also sections that provide in-depth details about your Linux system, such as the sections about system calls and library calls. When using man -k, you’ll get results from all of these sections. To limit the results that display, it makes sense to use grep to show only those sections that are relevant for what you need. So, if you are looking for the configuration file that has something to do with passwords, use man -k password | grep 5, or if you are looking for the command that an administrator would use to create partitions, use man -k partition | grep 8.
Another useful man option is -f. The command man -f <somecommand> displays a short description of the item as found in the mandb database. This description may help you when deciding whether this man page contains the information you are looking for.
Updating mandb
As previously mentioned, when you use the man -k command, the mandb database is consulted. This database is automatically created through a scheduled job. Occasionally, you might look for something that should obviously be documented, but all you get is the message “nothing appropriate.” If that happens, you might need to update the mandb database manually. Doing that is easy: Just run the mandb command as root without any arguments. It will see whether new man pages have been installed and update the mandb database accordingly.
Assume that you are looking for a command, using man -k, but all you get is the message “nothing appropriate” and you do not remember how to fix it. Exercise 2-7 shows what you can do in such cases.
Using info
Apart from the information that you’ll find in man pages, another system provides help about command usage. This is the info system. Most commands are documented in man pages, but some commands have their main documentation in the info system and only show a short usage summary in the man page. If that is the case, the “See Also” section of the man page of that command will tell you that “The full documentation for…is maintained as a Texinfo manual.” You then can read the info page using the command pinfo or info. Both commands work, but in pinfo, special items such as menu items are clearly indicated, which is why using pinfo is easier.
When working with info, take a look at the top line of the viewer. This shows the current position in the info document. Particularly interesting are the Up, Next, and Previous indicators, which tell you how to navigate. Info pages are organized like web pages, which means that they are organized in a hierarchical way. To browse through that hierarchy, type n to go to the next page, p to go to the previous page, or u to move up in the hierarchy.
In an info page, you’ll also find menus. Each item that is marked with an asterisk (*) is a menu item. Use the arrow keys to select a specific menu item. This brings you down one level. To get back up again, type u. This brings you back to the original starting point in the pinfo hierarchy. Figure 2-2 shows what an info page looks like.
Figure 2-2 Getting More Command Usage Information Using pinfo
Exercise 2-8 shows an example of such a command, and in this exercise you learn how to get the information out of the info page.
Using /usr/share/doc Documentation Files
A third source of information consists of files that are sometimes copied to the /usr/share/doc directory. These files are available in particular for services and larger systems that are a bit more complicated. You will not typically find much information about a command like ls, but some services do provide useful information in /usr/share/doc.
Some services store very useful information in this directory, like rsyslog, bind, Kerberos, and OpenSSL. For some services, even sample files are included.