Find out more about commands and tools in Linux by using the man command.
One of the most useful commands to learn about when dealing with Linux is the man
command.
Using man
, you can look up the manual pages for any tool or command that supports it.
A manual for a program can consist of up to nine different numbered sections. Only one of these sections need to be implemented for a program to have a valid manual.
These manual pages will describe how that command works and provide you with a rundown of all the options you can utilize. The pages can even provide information for programming libraries.
In this tutorial, we will be showing you the basics of using the man
command on a Linux based system.
Syntax of the man Command
At its very basics, the man command is straightforward to use. It, at most, only takes in three different arguments. An option, a section number, and the name of a command/program/tool you want to look up.
man [OPTIONS] [SECTION NUMBER] [COMMAND/TOOL/PROGRAM]
To use the man command in Linux, you only need to specify the name of the command you want to look up.
For example, if we wanted to lookup more on the ls command, all we need to do is type in the following.
man ls
The man tool will automatically find the first available manual page for that command.
Looking up a Specific Section Using man
As we mentioned at the start of this guide, a manual can be divided into nine different sections.
By default, man will automatically pick the first available page, starting from section 1.
The man
command gives us the ability to look up a specific section of a manual by specifying its number before the tool name.
man [SECTION NUMBER] [COMMAND/TOOL/PROGRAM]
Below we have a list of the section numbers that correspond to the type of information that is provided within it.
- Executable programs or shell commands
- System calls (functions provided by the kernel)
- Library calls (functions within program libraries)
- Special files (usually found in /dev)
- File formats and conventions eg /etc/passwd
- Games
- Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
- System administration commands (usually only for root)
- Kernel routines [Non standard]
For example, if we were doing some programming and wanted to look up the library calls (Section 3) available for the printf
tool, we can run the following command.
man 3 printf
Find out About the man Pages for a Command
If you are unsure of what sections would be available for a command, it is also possible to look these up.
To perform a lookup, we will need to make use of the whatis option (-f
or --whatis
).
man -f [COMMAND/TOOL/PROGRAM]
What this option does is print out a short description from the manual pages if its available. It will do this for each available section for the defined command.
For example, if we wanted to find out more about the manual pages provided for the printf
command, we can try the following.
man -f printf
From this, you should end up seeing a response, as we have below.
printf (1) - format and print data
printf (3) - formatted output conversion
You can see that printf is mentioned alongside its section number, which is encased in brackets (( )
). Finally, there is a short description describing what this function is for and what the manual page will be explaining.
Using the man command like this is the equivalent to using the whatis
tool.
Browsing all Manual Page for a Command
The man command also gives you the ability to browse through all of the manual pages available for a specified program.
Doing this saves you the hassle of having to specify each section that you want to view manually.
To achieve this, we will need to make use of the -a
option.
man -a [COMMAND/TOOL/PROGRAM]
After you have quit out of a manual page, the man
tool will automatically ask you if you want to read the next one or quit out of the tool.
To show you this, let us run the following sample command, where we view all available manual pages for the printf
package.
man -a printf
Once you exit the first page, you will see a prompt, as shown below.
$ man -a printf
--Man-- next: printf(3) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
You can see that the next section number is specified with the brackets.
In addition to the details of the next page, you are given three different options.
Firstly, you can decide if you want to view the next page by pressing the ENTER key. Secondly, you can skip the page entirely by pressing CTRL + D. The third and final option you can exit out of the man tool by pressing CTRL + C.
Searching for Manual Pages Using Regular Expression
If you are looking for a manual page that contains a phrase or expression, then the man command also has a tool for that.
The option -k
will search for the specified expression through all short description and page names. It will not search the manual pages themselves.
man -k [EXPRESSION]
Using this option will print out any matches to the terminal, specifying their name, section number, and short description.
We can see this behavior by looking up any other commands that contain the text printf.
man -k printf
Below is a small sample of what this command may return. Immediately you can tell that none of these options is printf itself. However, they do contain the word printf in their names.
man -k printf
asprintf (3) - print to allocated string
dprintf (3) - formatted output conversion
fprintf (3) - formatted output conversion
fwprintf (3) - formatted wide-character output conversion
Locating a Manual on the OS
If you want to find where the manual page is stored on your system you can utilize the -w
option.
man -w [COMMAND/TOOL/PROGRAM]
This option will tell the man
command to print out the location where the manual page for that program is stored.
For example, if we wanted to find out where the manual page for the printf command is stored, we can use the following command.
man -w printf
From this, we will get an absolute path to where the file resides within our system.
$ man -w printf
/usr/share/man/man1/printf.1.gz
Please note that this will output the manual page for the first section that it finds.
To get around this, we can either specify the section number for the manual that we want, like so.
man -w 3 printf
Alternatively, we could tell the man command to print the location of all of the available pages by using the -a
option as well.
man -aw printf
Using man to Display the Manual to a Web Browser
We can also utilize the man
command to display a manual page to a web browser that exists on our system.
Loading a manual in a web browser is useful for those that would rather not scroll through the pages within their terminal. To achieve this, all we need to do is utilize the -H
option.
man -H[BROWSER COMMAND] [COMMAND/TOOL/PROGRAM]
For example, if we wanted to load the manual for printf in firefox, we can try running the following command.
man -Hfirefox printf
The man tool will convert the manual page into HTML then output it to the specified web browser.
Making the man Command Case Sensitive
By default, the man
command is case insensitive. This means that when it searches, the name PRINTF
would be the same as printf
.
In most cases, you should not need to make use of this. However, the man
tool has the functionality to deal with situations where you have two programs with the same name.
You can tell man
to be case sensitive by using the -I
option.
man -I [COMMAND/TOOL/PROGRAM]
Learning More About the man Command
The man
command is a powerful and versatile tool that can help make your life easier with dealing with new programs.
Even though we have gone through a few of the more useful options that man
gives you, there is still plenty more you can learn.
The best way to learn about the vast range of options is to run the following command to load up the manual pages for man
.
man man
Hopefully, at this stage, you will now understand how you can use the man
command on Linux.
Be sure to check out our Linux commands section to find out about other useful Linux commands.
If you have run into any issues with this guide or feel like we missed something, feel free to leave a comment below.