manコマンドの基本

# 内容

manコマンドの使い方のメモです。

# セクション番号について

manコマンドで調査する際に、コマンドは必ず以下のセクションのいずれかに属している。

```
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]
```

# manコマンドの使い方

man [調査したいコマンド名]

```bash
$ man printf

PRINTF(1)                                                               User Commands                                                             

NAME
       printf - format and print data

SYNOPSIS
       printf FORMAT [ARGUMENT]...
       printf OPTION
```

セクション1に属しているprintfコマンドの使い方が表示された。
しかし、printfはセクション3にも属しているが、そちらの説明は表示されない。

そのため、セクション3のpritnfを調べたいときは下記のようにセクション番号を指定する。

```bash
$ man 3 printf

PRINTF(3)                                                         Linux Programmer's Manual                                                        

NAME
       printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprintf, vsprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #include <stdio.h>

       int printf(const char *format, ...);
       int fprintf(FILE *stream, const char *format, ...);
       int dprintf(int fd, const char *format, ...);
       int sprintf(char *str, const char *format, ...);
       int snprintf(char *str, size_t size, const char *format, ...);

       #include <stdarg.h>

       int vprintf(const char *format, va_list ap);
       int vfprintf(FILE *stream, const char *format, va_list ap);
       int vdprintf(int fd, const char *format, va_list ap);
       int vsprintf(char *str, const char *format, va_list ap);
       int vsnprintf(char *str, size_t size, const char *format, va_list ap);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
```

# セクション番号が不明な場合

そもそも、セクション番号なんて覚えられないので,
manページを検索できるkオプションでまず検索したいコマンドを調べます。

```bash
$ 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
printf (1)           - format and print data
printf (3)           - formatted output conversion
snprintf (3)         - formatted output conversion
sprintf (3)          - formatted output conversion
swprintf (3)         - formatted wide-character output conversion
vasprintf (3)        - print to allocated string
vdprintf (3)         - formatted output conversion
vfprintf (3)         - formatted output conversion
vfwprintf (3)        - formatted wide-character output conversion
vprintf (3)          - formatted output conversion
vsnprintf (3)        - formatted output conversion
vsprintf (3)         - formatted output conversion
vswprintf (3)        - formatted wide-character output conversion
vwprintf (3)         - formatted wide-character output conversion
wprintf (3)          - formatted wide-character output conversion
XtAsprintf (3)       - memory management functions
```

いっぱい、出力されるので正規表現を使用する。

```bash
$ man -k ^printf$
printf (1)           - format and print data
printf (3)           - formatted output conversion
```


# 使い方を忘れた場合

manコマンドでmanコマンドを調べる。

```
man man
```