Manual pages

이 문서에 대한 토론이 진행 중입니다.

@토론사유@에 대한 토론이 이 문서의 토론방에서 이루어지고 있습니다. 이 문서의 수정을 원하는 사용자는 이 토론 에서 의견을 제시하여 주시기 바랍니다. 또한 이 문서의 토론 중인 부분을 토론 합의 없이 수정할 때 문서 훼손으로 간주되어 차단될 수 있습니다.

1 개요

파일:Man page of man.png
↑man의 manual page 화면

UNIX, Linux 계열의 기본적인 프로그램, 시스템콜, 라이브러리 함수, 디바이스 파일, 파일포멧 유닉스 및 리눅스 시스템에 대한 대한 전반적인 정보가 입력되어 있는 매뉴얼이다. 일반적으로 맨 페이지(man page)로 줄여서 부른다, 맨 페이지 중 특정한 항목을 지칭할 때는 항목 이름(섹션번호)[1] 로 표현 한다.

맨 페이지 역시 매뉴얼로 존재 하며 사용법은 man man을 입력하면 된다(위의 이미지 참고). 맨 페이지의 기본적인 사용법은 man [항목] 으로 된다. 자세한 내용은 아래 사용방법 참고.

맨 페이지는 UNIX, Linux 계열의 기본적인 프로그램 중 하나로서 영어로 작성 되어 있고 터미널를 위해 만들어졌다. 이를 웹 및 한글로 번역하는 한글 맨 페이지 프로젝트[2]도 존재 한다.

2 사용방법

UNIX, Linux 터미널에서 "man [보고싶은 매뉴얼이름]"을 입력하면 자세한 정보를 출력한다.

간혹 매뉴얼에 이름은 같지만 다른 매뉴얼인 항목[3] 들이 있다. 이런 항목은 섹션(section)을 통해 구분하게 되어 있으므로 명시적으로 "man [섹션] [항목]"처럼 명시적으로 기록 되어야 한다. 각 섹션에 대한 자세한 소개는 "man [섹션] intro"를 통해 볼 수 있다.

man page 섹션들은 아래와 같다.

섹션 번호섹션 설명
1실행 가능한 프로그램 또는 쉘 명령
2시스템 호출 (system call)
3라이브러리 호출 (프로그램에 포함된 함수들)
4특별한 파일 (주로 /dev 에 포함된 다바이스 파일들)
5파일 포멧 및 규칙 (/etc/passed 같은 파일)
6게임
7기타 (매크로 패키지나 규약 같은 내용을 담고 있음. 예: man(7), groff(7))
8시스템 관리자를 위한 명령 - (보통은 root 사용자를 위함)
9커널 루틴 (표준아님)

man 명령어의 사용 예제는 아래와 같다.

# 바이너리 프로그램인 printf의 매뉴얼을 보고 싶다면
prompt$ man printf

# 라이브러리인 printf 함수의 매뉴얼을 보고 싶다면 위에 열거된 섹션 분류 중 라이브러리 호출에 해당하는 3을 추가로 지정해서
prompt$ man 3 printf

3 장점

CUI(터미널)환경에서 유닉스 및 리눅스 환경에서 프로그램, 함수, API, 특수 파일 같이 운영체제의 전반적인 내용을 다 담고 있다. 인터넷이 지원되지 않더라도 API 함수의 사용법, 파라메터 같은 세세한 내용이 담겨 있기 때문에 유용하다.

일단 가장 쉬운 printf 등으로 시작하여, 점점 복잡한 함수들을 찾아 보는 형태로 접근하도록 하자. 당신의 프로그래밍 능력을 확실히 향상시켜 줄 것이다.

4 기타

요즘은 구글에 함수명 넣고 검색하면 나오는 것을 보는 것이 더 편하다. 출력이나 복사해서 보기도 쉽다. 설명하는 것 보다 직접 한번 보는 것이 낫다. printf의 인터넷 맨페이지이다.

KLDP에서 한글 맨 페이지 프로젝트가 생겼다.

맨페이지보다 더 정확한 정보를 얻고 싶으면 info 명령어를 활용하도록 하자.

info 명령어
라는 식으로 작동하며, 맨페이지보다 자주 쓰이지는 않지만, 좀 더 상세화된 정보를 제공해 주며, 어떤 기능등은 맨페이지를 제공하지 않지만 info만 제공하는 경우도 있다.
  1. 예를 들어 open system call API는 open(2) 로 표현
  2. [1]
  3. 예를 들어 system call API 중 하나인 fork()와 C언어 라이브러리 함수인 fork()는 각각 2번 섹션과 3번 섹션에서 찾아야 한다.