750

So, for example, when I type man ls I see LS(1). But if I type man apachectl I see APACHECTL(8) and if I type man cd I end up with cd(n).

I'm wondering what the significance of the numbers in the parentheses are, if they have any.

6

9 Answers 9

789

The number corresponds to what section of the manual that page is from; 1 is user commands, while 8 is sysadmin stuff. The man page for man itself (man man) explains it and lists the standard ones:

MANUAL SECTIONS
    The standard sections of the manual include:

    1      User Commands
    2      System Calls
    3      C Library Functions
    4      Devices and Special Files
    5      File Formats and Conventions
    6      Games et. al.
    7      Miscellanea
    8      System Administration tools and Daemons

    Distributions customize the manual section to their specifics,
    which often include additional sections.

There are certain terms that have different pages in different sections (e.g. printf as a command appears in section 1, as a stdlib function appears in section 3); in cases like that you can pass the section number to man before the page name to choose which one you want, or use man -a to show every matching page in a row:

$ man 1 printf
$ man 3 printf
$ man -a printf

You can tell what sections a term falls in with man -k (equivalent to the apropos command). It will do substring matches too (e.g. it will show sprintf if you run man -k printf), so you need to use ^term to limit it:

$ man -k '^printf'
printf               (1)  - format and print data
printf               (1p)  - write formatted output
printf               (3)  - formatted output conversion
printf               (3p)  - print formatted output
printf [builtins]    (1)  - bash built-in commands, see bash(1)

Note that the section can sometimes include a subsection (e.g., the p in 1p and 3p above). The p subsection is for POSIX specifications; the x subsection is for X Window System documentation.

8
  • 18
    Note that these section numbers are for Linux. 1, 3 and 6 are the same across all unix variants AFAIK, but the others and the non-lone-digit sections can differ. Usually man X intro describes what is in section X. Commented Oct 28, 2010 at 22:31
  • 3
    @KeithB: I've used some unices with different 4,5,7,8. Digital Unix (OSF1) had, and Solaris still has: file formats in 4, misc in 5, devices in 7. Solaris also puts administrator commands in 1m. I think system calls in 2 is universal, but some systems also have some C library interfaces in 2 (when they're supposed to be thin wrappers around the eponymous syscall). Commented Oct 29, 2010 at 20:20
  • 2
    man -w -a will show paths to all versions of manpage without displaying them. Commented Mar 28, 2013 at 14:51
  • 3
    or: $ whatis printf from man 1.6 (instead of 'man -k "^printf"') Commented Aug 14, 2014 at 16:55
  • 14
    Huh, who'da thought you'd need a manual to use a manual... Never have I ever executed man man... until now.
    – Matt Clark
    Commented Dec 4, 2015 at 15:44
79

The history of these section numbers goes back to the original Unix Programmer's Manual by Thompson and Ritchie in 1971.

The original sections were

  1. Commands
  2. System calls
  3. Subroutines
  4. Special files
  5. File formats
  6. User-maintained programs
  7. Miscellaneous
2
  • More stuff from the 70ies, indeed. I thought it was from the 80ies.
    – Rolf
    Commented Feb 10, 2018 at 18:51
  • 1
    "Miscellaneous" primarily means "broad information about an entire subsystem or generic Unix feature rather than a particular API endpoint." See for example pipe(7), tcp(7) (and several other networking man pages), pthreads(7), boot(7), regex(7), etc. There's other stuff in section 7 as well, such as ascii(7) (ASCII table) and man(7) (how to write a man page) but the broad docs pages are by far the most useful things in section 7 in my experience.
    – Kevin
    Commented Dec 7, 2018 at 18:27
47

konqueror also describes non-standard sections: (thanks to @greg0ire for the idea)

0     Header files
0p    Header files (POSIX)
1     Executable programs or shell commands
1p    Executable programs or shell commands (POSIX)
2     System calls (functions provided by the kernel)
3     Library calls (functions within program libraries)
3n    Network Functions
3p    Perl Modules
4     Special files (usually found in /dev)
5     File formats and conventions eg /etc/passwd
6     Games
7     Miscellaneous  (including  macro  packages and conventions), e.g. man(7), groff(7)
8     System administration commands (usually only for root)
9     Kernel routines
l     Local documentation
n     New manpages
0
29

What it's means already described, but I also wants to add that each section has special manual page with introduction: intro. For example, see man 1 intro or man 3 intro and so on.

3
  • 1
    I don't see this on my Fedora install. Is man X intro not standard?
    – beatgammit
    Commented Jul 1, 2011 at 4:39
  • @tjameson Do you have man-pages package installed? Commented Jul 1, 2011 at 4:43
  • It's there in openSUSE Leap 15.3.
    – U. Windl
    Commented Apr 5, 2022 at 7:50
21

From the man manpage:

The table below shows the section numbers of the manual followed by the 
types of pages they contain.

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages and conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

As to why they're separate like that -- there's some overlap. Certain manpages exist in more than one section depending on what you mean.

For instance, compare man crontab with man 5 crontab -- chances are the latter is the one you meant to look up.

5
  • And what are man1p and man3p?
    – Tyilo
    Commented Aug 4, 2011 at 20:15
  • And where should I place my own manpages located in ~/man?
    – Tyilo
    Commented Aug 4, 2011 at 20:20
  • 1
    1p is the posix standard version of the manual. If you want to write portable code, you should use only Xp man pages. If you implementation is non posix compliant X and Xp man pages could differ.
    – andcoz
    Commented Aug 4, 2011 at 22:42
  • @Tyilo see my answer Commented Jun 23, 2014 at 6:36
  • Also read the middle-part of the first line; for example it says "POSIX Programmer's Manual" for "1p" as opposed to "User Commands" for "1" (here on Linux at least).
    – U. Windl
    Commented Apr 5, 2022 at 7:53
11

These are section numbers. Just type man man or open konqueror and type man://man and you'll see what are these sections.

0
11

Often, a man page is referenced via suffixing it with the section enclosed in parentheses, e.g.:

read(2)

This style has two main advantages:

  • it is immediately clear that you reference a man page - i.e. you can write something like 'cf. read(3)' instead of 'cf. the section 3 man page of read'
  • if multiple sections contain man pages with the same name, specifying the section is more precise

Man pages are organized in sections, e.g. Section 1 includes all user command man pages, Section 2 all man pages for the system calls, Section 3 is for library functions etc.

On the command line, if you don't explicitly specify the section you get the first matching man page, in the default section traversal order, e.g.:

$ man read

displays BASH_BUILTINS(1) on Fedora. Where

$ man 2 read

displays the man page for the read() system call.

Note that the positional specification of the section is not portable - e.g. on Solaris you would specify it like this:

$ man -s 2 read

Usually, man man also lists some of the available sections. But not necessarily all. For listing all available sections one may list the subdirectories of all directories listed in the default man path or the environment variable $MANPATH. For example on a Fedora 23 system with some development packages installed /usr/share/man has following subdirectories:

cs  es  id  man0p  man2   man3x  man5x  man7x  man9x  pt_BR  sk  zh_CN
da  fr  it  man1   man2x  man4   man6   man8   mann   pt_PT  sv  zh_TW
de  hr  ja  man1p  man3   man4x  man6x  man8x  pl     ro     tr
en  hu  ko  man1x  man3p  man5   man7   man9   pt     ru     zh

The directories with the man prefix represent each section - while the other ones contain translated sections. Thus, to get a list of non-empty sections one could issue a command like this:

$ find /usr/share/man -type f  | sed 's@^.*/man\(..*\)/.*$@\1@' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7

(the sections ending with p are POSIX man pages)

To view a man page in another language (if available) one can set a language related environment variable, e.g.:

$ LC_MESSAGES=de_DE man read

Also, each section should have an introduction man page named intro, e.g. viewable via:

$ man 2 intro
7

The definitions for SVr4 are:

1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures

These is the actual numbering for a "genetic" UNIX. POSIX does not define numbers.

2

Trying to be a bit more exhaustive than the man man page, that is already a really good starting point:

  • man1: User programs Manual pages that describe publicly accessible commands are contained in this chapter. Most program documentation that a user will need to use is located here. Also, self developed scripts that comes in handy in daily tasks will be stored here.

  • man2: System calls This section describes all of the system calls (requests for the kernel to perform operations).

  • man3: Library functions and subroutines; program library routines that are not direct calls to kernel services. This and chapter 2 are only really of interest to programmers.

  • man4: Special files; special files, related driver functions, and networking support available in the system. Typically, this includes the device files found in /dev and the kernel interface to networking protocol support.

  • man5: File formats; formats for many data files. This includes various include files, program output files, and system files.

  • man6: Games; games, demos, and generally trivial programs. Different people have various notions about how essential this is.

  • man7: Miscellaneous Manual; pages that are difficult to classify are designated as being section 7. The troff and other text processing macro packages are found here.

  • man8: System administration; Programs used by system administrators for system operation and maintenance are documented here. Some of these programs are also occasionally useful for normal users. ifconfig, mount, purge, for example, are all stored here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .