Your reference guide is called Google / man / the Internet / ....
manual page의 약자로, 유닉스 계열 운영체제에서 사용되는 유틸리티이다. man 명령어
와 같이 사용하면 해당 명령어에 대한 메뉴얼을 볼 수 있다.
manpage는 메뉴얼의 종류별로 여러 개의 섹션으로 나누어져 있다.
섹션 번호 | 섹션 설명 |
---|---|
1 | 실행 가능한 프로그램 또는 쉘 명령 |
2 | 시스템 콜 |
3 | 라이브러리 호출 (주로 Standard C Library) |
4 | 특별한 파일 (주로 /dev 에 포함된 디바이스 파일들) |
5 | 파일 포맷 및 규칙 (/etc/passed 같은 파일) |
6 | 게임 |
7 | 기타 (매크로 패키지나 규약 같은 내용을 담고 있음. 예: man(7), groff(7)) |
8 | 시스템 관리자를 위한 명령 |
man 명령의 기본 설정은 1 8 3 0 2 5 4 9 6 7
순서대로 섹션을 참조한다(운영체제별로 다름: man(1)의 DEFAULTS섹션 참고). 따라서 printf와 같이 동명의 메뉴얼이 다른 섹션에 있을 때에는 섹션 번호를 직접 입력하여 메뉴얼을 보아야 한다.
man printf
만 실행해도 섹션 1이 가장 우선순위가 높기 때문에 man 1 printf
와 같은 문서를 볼 수 있다.man 3 printf
라 입력해 섹션 3의 문서를 지정해서 보아야 한다.각 메뉴얼들은 여러 개의 단락으로 나누어진다. 다음은 일반적인 단락들이다: NAME, SYNOPSIS, CONFIGURATION, DESCRIPTION, OPTIONS, EXIT STATUS, RETURN VALUE, ERRORS, ENVIRONMENT, FILES, VERSIONS, CONFORMING TO, NOTES, BUGS, EXAMPLE, AUTHORS, SEE ALSO.
단락별 사용 예시를 들면,
메뉴얼 파일들은 /usr/share/man
밑에 섹션별로 위치한다. 예를 들어, libc의 printf 함수는 /usr/share/man/man3/printf.3.gz
에서 찾을 수 있다. 이 파일들은 roff 형식으로 작성된 파일이 gzip으로 압축된 형식이다. gzip -d printf.3.gz && nroff printf.3
으로 터미널에서 파일을 직접 열어볼 수 있다.
manpage를 작성하기 위해서는 roff 문법을 알아야 한다. 불행 중 다행이도, groff-man 메크로를 활용하면 수고를 조금 덜 수 있다. (manpage가 사용하는 nroff는 groff 기반으로 동작하는데, 기본적으로 man 메크로를 사용하도록 설정되어 있다) 가이드 문서를 보며 나만의 manpage를 만들어보자.