Those Numbers in the Man Pages
Ever seen used
man and seen output like
TIME(1)? I always wondered what they meant. Here’s the answer.
The number corresponds to the manual section.
man man (on RHEL):
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 conventions), e.g. man(7), groff(7) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard]
You can check the purpose of each section with
man <NUM> intro.
You can pick a section when reading the pages:
man 1 time # explains the time shell command man 2 time # explain the time syscall
On macOS, which is a derivative of BSD, system calls like
printf are actually just library calls. So
man 1 time will show the shell command, but
man 2 time prints
No entry for time in section 2 of the manual.
man 3 time shows the documentation for the
time_t time(time_t *tloc) function, because it’s a standard C library.
On a Red Hat (RHEL) system I have access to,
man 2 time shows the Linux man pages (as a system call) and
man 3 time shows the POSIX man pages, explaining that the implementation may differ on Linux compared to the POSIX standard.
You can also see ALL the available man pages for time (in sequence) with
man -a time, or search for man pages with
man -k <cmd> (which will also do substring matches). Here are some examples:
# 1. Show all printf man pages: man -k '^printf' # 2. Show all print commands with man pages man -k print
I still don’t know how to specify the end of the string:
'^printf$' didn’t work, like I would have expected.
Credit: this question helped me understand what the numbers after names in man pages mean.
[Relevant link] [Source]
Sam Stevens, 2020