맨위로가기

Man page

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Man page는 유닉스 및 유닉스 계열 운영 체제에서 사용되는 온라인 매뉴얼로, 명령어, 시스템 호출, 라이브러리 함수 등에 대한 정보를 제공한다. 1971년에 최초의 man 페이지가 작성되었으며, 현재는 대부분의 유닉스 명령 줄 응용 프로그램에 man 페이지가 제공된다. man 페이지는 일반적으로 8개의 단락으로 구성되며, `man` 명령어를 사용하여 셸 프롬프트에서 확인할 수 있다. man 페이지는 troff 매크로 또는 mdoc 매크로를 사용하여 작성되며, PostScript, PDF, HTML 등 다양한 형식으로 변환할 수 있다.

더 읽어볼만한 페이지

  • 온라인 도움말 - Doxygen
    Doxygen은 소스 코드 주석에서 문서를 추출하여 다양한 형식으로 결과물을 생성하는 도구로, 여러 프로그래밍 언어와 운영체제를 지원하며 다이어그램 생성 및 수식 표현 기능도 제공한다.
  • 온라인 도움말 - 인포메이션 프레젠테이션 퍼실리티
    인포메이션 프레젠테이션 퍼실리티(IPF)는 마크업 언어 기반 기술로 정보를 표시하고 구성하며, IBM 환경에서 소프트웨어 도움말 시스템 구축에 사용되었고, 현재는 다양한 형식으로 변환되어 웹 기반 문서 시스템 등 관련 기술에 응용된다.
  • 기술 소통 - 교열
    교열은 글의 명확성과 정확성을 높이기 위해 문법, 용법, 내용, 구성 요소 간의 관계 등을 고려하여 오류를 수정하고 재구성하는 복잡한 과정으로, 디지털 환경 변화에 따라 역할이 재정립되고 있다.
  • 기술 소통 - 국제화와 지역화
    국제화는 소프트웨어를 다양한 언어와 지역을 지원하도록 설계하는 과정이며, 지역화는 특정 언어와 지역에 맞춰 조정하는 과정으로, 문자 인코딩, 날짜/시간 형식, 통화, 법적 규제, 문화적 차이 등을 고려하여 제품을 적응시키는 것을 의미한다.
  • 유닉스 SUS2008 유틸리티 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 유닉스 SUS2008 유틸리티 - 로케일
    로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Man page
일반 정보
종류유닉스 명령어
사용법sed [옵션] '스크립트' [입력 파일...]
설명스트림 편집기
최초 출시1973년에서 1974년 사이
개발자리 매클로이
운영 체제유닉스와 유사 유닉스
언어C
라이선스다양한 오픈 소스 라이선스 (주로 GNU 일반 공중 사용 허가서)
상세 정보
기능텍스트 스트림 변환 및 편집
특징비대화형 편집
스크립트 기반 편집
정규 표현식 지원
활용텍스트 파일 내 특정 패턴 검색 및 변경
로그 파일 분석 및 추출
프로그래밍 언어 코드 변환
참고 사항ed 편집기의 기능 확장
grep과 함께 텍스트 처리 유틸리티로 널리 사용
옵션
-n, --quiet, --silent자동 출력 억제
-e 스크립트, --expression=스크립트스크립트를 명령으로 실행
-f 스크립트 파일, --file=스크립트 파일스크립트 파일을 읽어 실행
-i[SUFFIX], --in-place[=SUFFIX]파일을 직접 편집 (SUFFIX는 백업 파일 확장자)
-l N, --line-length=N라인 길이 제한 (N은 길이)
-s, --separate파일을 개별적으로 처리
--sandbox제한된 실행 모드
-u, --unbuffered출력 버퍼링 비활성화
-z, --null-data라인을 NULL 문자로 구분
--help도움말 표시
--version버전 정보 표시

2. 역사

유닉스의 역사 초기 2년 동안은 문서화가 존재하지 않았다.[35] 1971년 11월 3일, 더글러스 매클로이의 제안으로 데니스 리치켄 톰프슨이 최초의 man 페이지를 작성했다.[34] 초기에는 문서가 부족했지만, 점차 발전하여 유닉스 시스템의 중요한 요소가 되었다.

4판부터는 트로프(troff) 조판 패키지와 `-man` 매크로 세트를 사용하여 man 페이지의 서식이 지정되었다.[3] 당시 온라인 문서화는 큰 발전으로 여겨졌으며, 현재는 대부분의 유닉스 명령 줄 응용 프로그램에 man 페이지가 제공된다. 데비안과 같은 일부 프로젝트에서는 man 페이지가 없는 프로그램에 대해 man 페이지를 작성하는 노력을 기울이기도 한다. 4.4BSD의 현대적 후손들 역시 시스템 문서화의 주요 형태로 man 페이지를 배포한다.

man 명령어의 man-db 버전에는 00:30에 실행하면 ABBA의 노래 Gimme! Gimme! Gimme! (A Man After Midnight) 가사를 언급하며 "gimme gimme gimme"를 반환하는 이스터 에그가 있었으나, 2017년에 제거되었다.[7][8]

2010년, OpenBSD는 man 페이지 서식 지정에 mandoc|맨독영어을 도입했다.

3. 사용

프롬프트에서 `man <명령어_이름>` 형식으로 명령어에 대한 매뉴얼 페이지를 볼 수 있다.[36][37] 예를 들어 `man ftp`와 같이 입력하면 ftp 명령어의 매뉴얼 페이지가 나타난다.

기본 페이저는 less이며, 페이지를 탐색할 때 less의 명령어를 사용할 수 있다. (예: 다음 페이지, q: 종료)[36][37] `MANPAGER` 또는 `PAGER` 환경 변수를 덮어씌워 페이저를 변경할 수 있다.

페이지는 "이름(단락)" 표기법으로 참조한다. (예: `ftp(1)`) 동일한 페이지 이름이 여러 단락에 나타날 수 있으며, 이 경우 단락 번호를 지정하여 특정 페이지를 참조한다. (예: `man 3 printf`)

`man man` 명령어를 통해 man 명령어의 옵션을 확인할 수 있다.

4. 매뉴얼 단락

매뉴얼은 일반적으로 8개의 단락(섹션)으로 나뉜다. BSD,[15] macOS, 리눅스,[31] 및 Solaris 11.4와 같은 대부분의 시스템은 Research Unix의 번호 매기기 방식을 따른다.[16][17] System V는 다른 순서를 사용한다.[18]

일반System V설명
11일반 명령어
22시스템 콜
33라이브러리 함수, 특히 C 표준 라이브러리 포함
47특수 파일 (일반적으로 /dev에서 찾을 수 있는 장치) 및 장치 드라이버
54파일 형식 및 규칙
66비디오 게임화면 보호기
75기타
81M시스템 관리 명령어 및 데몬



POSIX API는 2절과 3절에 모두 있으며, 2절에는 시스템 콜로 구현된 API가, 3절에는 라이브러리 루틴으로 구현된 API가 있다.

일부 시스템에는 다음과 같은 추가 섹션이 있을 수 있다.

섹션설명
0C 라이브러리 헤더 파일 (Unix v6)
9커널 루틴 (FreeBSD, SVR4, Linux)[17][15]
lLAPACK 라이브러리 함수[19]
nTcl/Tk 명령어
xX 윈도 시스템



일부 섹션은 접미사를 사용하여 더 세분화된다. 예를 들어, 일부 시스템에서 3C 섹션은 C 라이브러리 호출용이고, 3M은 수학 라이브러리용 등이다. 이로 인해 8절(시스템 관리 명령어)은 때때로 주 명령어 섹션의 1M 하위 섹션으로 된다. 일부 하위 섹션 접미사는 섹션 전체에서 일반적인 의미를 갖는다.

하위 섹션설명
pPOSIX 사양
xX 윈도 시스템 문서


5. 레이아웃

모든 man 페이지는 ASCII 텍스트 디스플레이에 최적화된 공통 레이아웃을 따른다. 일반적인 단락 구성은 다음과 같다:[22]


  • NAME (이름): 명령어 또는 함수의 이름과 그 기능을 한 줄로 설명한다.
  • SYNOPSIS (개요): 명령어의 경우, 실행 방법 및 명령줄 옵션을 설명한다. 프로그램 함수의 경우 함수가 취하는 매개변수 목록과 어느 파일 헤더가 이에 대한 정의를 포함하는지 설명한다.
  • DESCRIPTION (설명): 명령어 또는 함수의 기능에 대한 텍스트 설명이다.
  • EXAMPLES (예시): 일반적인 사용법의 몇 가지 예시이다.
  • SEE ALSO (참고): 관련 명령이나 함수의 목록이다.


그 외에도 OPTIONS, EXIT STATUS, ENVIRONMENT, BUGS, FILES, AUTHOR, REPORTING BUGS, HISTORY, COPYRIGHT 등의 단락이 존재할 수 있다.

6. 작성

man 페이지는 `man` 매크로, `mdoc` 매크로, 또는 둘의 조합(`mandoc`)을 사용하여 작성할 수 있다.[20] `man` 매크로는 제목 줄, 섹션 헤더, 글꼴(굵게, 작게, 기울임꼴), 단락, 들여쓰기 추가/감소 등의 기능을 제공하여 최소한의 서식 있는 텍스트 기능을 지원한다.[21] 반면, 더 새로운 `mdoc` 언어는 의미론적이며, 프로그램 이름, 시놉시스, 함수 이름, 작성자 이름 등 대부분의 표준 섹션에 대한 특수 매크로를 포함한다. 이 정보는 mandoc과 같은 프로그램에서 매뉴얼에 대한 의미론적 검색을 구현하는 데 사용될 수 있다. 스타일 지정을 직접 제어하는 지시문도 있지만, 특수 매크로가 대부분의 사용 사례를 다룰 것으로 예상된다.[22] mandoc 및 groff 프로젝트는 모두 `mdoc`을 새로운 문서에 선호하는 형식으로 간주한다.[23]

macOS 및 리눅스에서는 ''man''과 ''mdoc''이라는 두 개의 groff 매크로 패키지를 사용하여 man 페이지를 작성할 수 있다. ''man''은 더 오래되었으며, 유닉스의 전통적인 형식의 man 페이지를 작성할 수 있다. 반면 ''mdoc''은 더 새로운 형식이며 문서의 의미론적 구조를 더 잘 지원한다. macOS 및 리눅스에서 이러한 사용법을 알기 위해서는 `man groff_man` 및 `man groff_mdoc` 명령을 실행하면 된다.

man 페이지는 troff의 10포인트 로마체를 사용하여 배치된 텍스트이지만, 터미널(TTY)에서 보기 때문에 이러한 구별은 일반적으로 무의미하다. 결과적으로 "작은 글꼴" 매크로는 거의 사용되지 않는다.[24] 굵은 글씨와 기울임꼴 텍스트는 ECMA-48을 통해 터미널에서 지원되며, groff의 `grotty`는 지원하는 터미널을 감지하면 요청 시 이를 내보낸다. 그러나 BSD mandoc은 타이프라이터 백스페이스-후-오버스트라이크 시퀀스를 통해 굵은 글씨와 밑줄(기울임꼴 대신) 텍스트만 지원하며, 이는 `less`에 의해 ECMA-48로 변환되어야 한다.[25][26]

시스템 내에 있는 개별 man 페이지의 소스 코드를 보고 따라 하면서 man 페이지를 작성할 수도 있다. macOS와 리눅스의 경우, 일반적으로 `/usr/share/man`에 man 페이지의 소스 파일이 있다. 소스 파일의 위치는, 예를 들어 명령어가 `command`라면 `man -w command`를 실행하여 얻을 수 있다.

DocBook이나 LinuxDoc|리눅스독영어 형식으로 작성한 후, groff를 통해 man 페이지로 변환할 수도 있다.

Markdown에서 man 페이지로 변환하는 도구(pandoc, ronn, md2man)도 존재한다. 이러한 도구는 `man` 형식을 내보내는데, Markdown은 `mdoc`의 의미론적 내용과 일치할 만큼 표현력이 충분하지 않기 때문이다. DocBook에는 내장된 man(7) 변환기가 있는데, mandoc의 작성자에 따르면 품질이 형편없다고 한다.[29]

7. 변환

프리BSD(FreeBSD) 매뉴얼 페이지의 일부, PDF 형식으로 조판됨


man 페이지의 기본 형식은 트로프(troff)이며, 트로프 매크로(troff macros) (외관 지향) 또는 mdoc (의미 지향) 매크로 패키지를 사용하여 포스트스크립트(PostScript), PDF 및 기타 다양한 형식으로 조판하여 보거나 인쇄할 수 있다.[9]

일부 유닉스 시스템에는 사용자가 HTML 브라우저를 사용하여 man 페이지를 탐색할 수 있게 해주는 man2html 명령 패키지가 있다. groff와 man-db가 있는 시스템에서는 `man --html`을 사용하여 더 높은 품질의 기본 HTML 출력을 낼 수 있다.[9]

2010년, 오픈BSD(OpenBSD)는 man 페이지 서식 지정을 위해 트로프(troff) 대신 mandoc을 도입했다. mandoc은 PostScript, HTML, XHTML, 터미널에서 기본적으로 지원되는 man 페이지용 특수 컴파일러/포맷터이다. mdoc 매크로를 사용하는 man 페이지에서 사용되는 트로프의 하위 집합만 지원하도록 설계되었다.[9]

온라인에서 (`man` 명령어를 사용하여) man 페이지를 보는 것 외에도, man 페이지를 PDF로 변환하여 인쇄할 수 있다. macOS와 Linux에서는 다음과 같이 입력한다 (`command`를 적절한 명령어 이름으로 바꾼다).

```bash

groff -mandoc command.1 >command.ps

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=command.pdf command.ps

```

첫 번째 줄은 man 페이지를 PostScript 형식으로 내보내고, 두 번째 줄은 PDF로 변환한다. 이는 'man' 형식과 'mdoc' 형식 모두에서 작동한다. 고정폭 글꼴을 사용하여 인쇄하는 것이 더 읽기 쉬운 경우, `groff` 명령어의 `-mandoc` 옵션 뒤에 `-f C` 옵션을 추가한다.

mandoc 포맷터는 PDF 형식을 직접 지원하는 등, 다양한 파일 형식으로 출력할 수 있다.

```bash

mandoc -Tpdf command.1 >command.1.pdf

mandoc -Tps command.1 >command.1.ps

mandoc -Txhtml command.1 >command.1.xhtml

8. 대안

GNU 프로젝트의 초기적이고 단순한 하이퍼텍스트 시스템인 info는 `man`의 대안으로 주목할 만하다. TLDR 페이지(`tldr`)는 일반적인 사용 사례에 대한 간단한 예시를 제공하는 치트 시트와 유사하다.[32]

일부 유닉스 GUI 응용 프로그램(특히 GNOME 및 KDE 개발 환경을 사용하여 구축된 응용 프로그램)은 HTML로 최종 사용자 문서를 제공하며, 응용 프로그램 내에서 도움말을 읽기 위한 내장 HTML 뷰어(예: `yelp`)를 포함한다.[33]

참조

[1] 웹사이트 man(1) https://man.freebsd.[...] 2023-07-15
[2] 간행물 A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 http://www.cs.dartmo[...] 2015-02-01
[3] 웹사이트 UNIX Evolution: 1975-1984 Part I - Diversity http://www.collyer.n[...] 2012-12-22
[4] 뉴스 The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace https://archive.org/[...] 1983-10
[5] 웹사이트 GIT commit 002a6339b1fe8f83f4808022a17e1aa379756d99 https://git.savannah[...] 2017-11-22
[6] 웹사이트 GIT commit 84bde8d8a9a357bd372793d25746ac6b49480525 https://git.savannah[...] 2017-11-22
[7] 웹사이트 GIT commit b225d9e76fbb0a6a4539c0992fba88c83f0bd37e https://git.savannah[...] 2018-09-25
[8] 웹사이트 "Why does man print \"gimme gimme gimme\" at 00:30?" https://unix.stackex[...] 2017-11-22
[9] 웹사이트 WoMan: Browse Unix Manual Pages "W.O. (without) Man" https://www.gnu.org/[...] GNU 2020-08-03
[10] 웹사이트 FreeBSD Quarterly Status Report, January-March 2013 http://www.freebsd.o[...] FreeBSD 2013-05-12
[11] 메일링리스트 announcing mdoc.su, short manual page URLs http://lists.freebsd[...] 2013-02-19
[12] 웹사이트 mdoc.su — Short manual page URLs for FreeBSD, OpenBSD, NetBSD and DragonFly BSD http://mdoc.su/ 2013-02-23
[13] 웹사이트 Linux man pages online http://man7.org/linu[...] 2020-05-05
[14] 웹사이트 About https://www.mankier.[...] 2020-05-05
[15] Manpage man
[16] 웹사이트 Manual Pages for Research Unix Eighth Edition http://man.cat-v.org[...] 2020-05-06
[17] 웹사이트 Unix Programmer's Manual - Introduction https://www.bell-lab[...] 1971-11-03
[18] 웹사이트 System V release 4 manuals http://bitsavers.tra[...] 2020-05-06
[19] 웹사이트 lapack (l) - Linux Man Pages https://www.systutor[...] 2021-05-29
[20] Manpage groff_tmac
[21] Manpage man
[22] Manpage mdoc
[23] 웹사이트 Groff Mission Statement - 2014 https://www.gnu.org/[...] 2021-01-02
[24] 웹사이트 man https://www.gnu.org/[...] 2019-12-31
[25] 웹사이트 Italics and colour in manual pages on a nosh user-space virtual terminal https://jdebp.uk/Sof[...] 2021-01-21
[26] Manpage mandoc
[27] 웹사이트 help2man Reference Manual https://www.gnu.org/[...] 2023-03-05
[28] 웹사이트 Man Pages (GNU Coding Standards) https://www.gnu.org/[...] 2023-03-05
[29] 웹사이트 New mandoc -mdoc -T markdown converter https://undeadly.org[...] 2023-03-05
[30] 웹사이트 command line - Linux man pages in different languages https://askubuntu.co[...] 2020-05-05
[31] Manpage man
[32] 웹사이트 TLDR pages https://tldr.sh/ 2020-05-05
[33] 메일링리스트 Re: [Groff] man pages (tangential to Future Redux) https://lists.gnu.or[...] 2023-03-05
[34] 웹사이트 Unix Manual, first edition https://www.bell-lab[...] 2022-05-30
[35] 기술보고서 A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 http://www.cs.dartmo[...]
[36] 웹인용 man https://www.freebsd.[...] 2016-07-04
[37] 웹인용 man(1) - Linux manual page http://man7.org/linu[...] 2016-07-04



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com