man page

 

1. 개요
2. 사용방법
3. 장점
4. 단점


1. 개요


[image]
↑man의 manual page 화면
UNIX, Linux 계열의 기본적인 프로그램, 시스템콜, 라이브러리 함수, 디바이스 파일, 파일포멧 유닉스 및 리눅스 시스템에 대한 대한 전반적인 정보가 입력되어 있는 매뉴얼이다. 일반적으로 맨 페이지(man page)로 줄여서 부른다, 맨 페이지 중 특정한 항목을 지칭할 때는 항목 이름(섹션번호)[1] 로 표현 한다.
맨 페이지 역시 매뉴얼로 존재 하며 사용법은 man man을 입력하면 된다(위의 이미지 참고). 맨 페이지의 기본적인 사용법은 man [항목] 으로 된다. 자세한 내용은 아래 사용방법 참고.
맨 페이지는 UNIX, Linux 계열의 기본적인 프로그램 중 하나로서 영어로 작성 되어 있고 터미널를 위해 만들어졌다. 이를 웹 및 한글로 번역하는 한글 맨 페이지 프로젝트는 폐쇄되었다.

2. 사용방법


UNIX, Linux 터미널에서 "man [보고싶은 매뉴얼이름]"을 입력하면 자세한 정보를 출력한다.
간혹 매뉴얼에 이름은 같지만 다른 매뉴얼인 항목[2] 들이 있다. 이런 항목은 섹션(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
검색은 vi 키매핑을 따라
/
로 시작하여 정규표현식을 입력하면 된다. 다음 검색결과로 이동할 때는
n
, 이전 검색결과는
N
을 누르면 된다. 또한 가독성을 높이기 위해 색상을 커스터마이즈할 수 있다. #

3. 장점


CUI(터미널)환경에서 유닉스 및 리눅스 환경에서 프로그램, 함수, API, 특수 파일 같이 운영체제의 전반적인 내용을 다 담고 있다. 인터넷이 지원되지 않더라도 API 함수의 사용법, 파라메터 같은 세세한 내용이 담겨 있기 때문에 유용하다.
그리고 혹시 버전별로 사용법이 다른 명령어가 있을 경우, 맨 페이지는 현재 시스템에 설치된 바로 그 버전의 문서를 제공하기 때문에 현재 설치된 버전에 맞는 옵션 조합을 찾아내고자 할 때는 맨 페이지가 유용하다.
일단 가장 쉬운 printf 등으로 시작하여, 점점 복잡한 함수들을 찾아 보는 형태로 접근하도록 하자. 당신의 프로그래밍 능력을 확실히 향상시켜 줄 것이다. 아 물론 프로그래밍을 이제 입문하는 사람은 맨 페이지보다는 책이 낫다.

4. 단점


유닉스에 능숙한 개발자들이 쓴 것이기 때문에 초보자 입장에서는 불친절하거나 어려운 내용이 많다. xkcd메뉴얼에 대한 만화. man page는 빼도박도 못하고 오른쪽 끝에 위치한다(...)
그리고 모든 명령어가 맨 페이지를 제공하는 게 아니다. 서드 파티 명령어들은 아예 구글 검색으로만 매뉴얼을 열람할 수 있는 경우가 종종 있다.[3] info 명령이 이 경우에 도움이 될 수는 있지만 구글검색으로 찾아내는 정보에는 '''예제'''가 포함된 경우가 많기 때문에 명령어를 처음 사용하는 경우에는 맨 페이지는 썩 좋은 선택은 아니다. 대체적인 사용법은 아는데 몇몇 옵션이 기억나지 않을 때 빠르게 열람하는 용도가 가장 적절하다.
유닉스나 리눅스에서 자주 사용하는 vi 키매핑, 고정폭 터미널 UI, 색상 변경 설정 등에 익숙하지 않은 경우 구글 검색으로 해당 man page를 찾는게 더 편할 수도 있다. 예를들어
man printf
라고 구글에 검색하면 첫번째 결과로 이런 페이지를 볼 수 있다. 단, 구글 검색에서 나온 man page가 설명하는 프로그램 버전이 자신의 컴퓨터에 설치된 프로그램 버전과 일치하지 않는 경우가 있으니 주의해야한다.
맨 페이지는 보통 일상적으로 빠르게 사용하기에는 너무 길고 가독성이 떨어진다. 이 경우 맨 페이지를 읽기 전에
tldr
혹은
bropages
를 이용하는 것도 방법이다.[4] 예컨대
tldr ls
라고 입력하면 tl;dr라는 이름에 걸맞게
ls
커맨드와 관련해 자주 사용할 법한 예시 몇 개만을 짤막하게 나열해준다.

[1] 예를 들어 open system call API는 open(2) 로 표현 [2] 예를 들어 system call API 중 하나인 fork()와 C언어 라이브러리 함수인 fork()는 각각 2번 섹션과 3번 섹션에서 찾아야 한다. [3] 보통 깃허브의 README.md 파일로 안내한다.[4] 전자는 2020년 5월 현재 우분투 기본 저장소에 포함되어있기 때문에 설치도 간편하다 (
sudo apt install tldr
).