Man page
"오늘의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] 초기에는 문서가 부족했지만, 점차 발전하여 유닉스 시스템의 중요한 요소가 되었다.
셸 프롬프트에서 `man <명령어_이름>` 형식으로 명령어에 대한 매뉴얼 페이지를 볼 수 있다.[36][37] 예를 들어 `man ftp`와 같이 입력하면 ftp 명령어의 매뉴얼 페이지가 나타난다.
매뉴얼은 일반적으로 8개의 단락(섹션)으로 나뉜다. BSD,[15] macOS, 리눅스,[31] 및 Solaris 11.4와 같은 대부분의 시스템은 Research Unix의 번호 매기기 방식을 따른다.[16][17] System V는 다른 순서를 사용한다.[18]
모든 man 페이지는 ASCII 텍스트 디스플레이에 최적화된 공통 레이아웃을 따른다. 일반적인 단락 구성은 다음과 같다:[22]
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. 사용
기본 페이저는 less이며, 페이지를 탐색할 때 less의 명령어를 사용할 수 있다. (예: 다음 페이지, q: 종료)[36][37] `MANPAGER` 또는 `PAGER` 환경 변수를 덮어씌워 페이저를 변경할 수 있다.
페이지는 "이름(단락)" 표기법으로 참조한다. (예: `ftp(1)`) 동일한 페이지 이름이 여러 단락에 나타날 수 있으며, 이 경우 단락 번호를 지정하여 특정 페이지를 참조한다. (예: `man 3 printf`)
`man man` 명령어를 통해 man 명령어의 옵션을 확인할 수 있다.
4. 매뉴얼 단락
일반 System V 설명 1 1 일반 명령어 2 2 시스템 콜 3 3 라이브러리 함수, 특히 C 표준 라이브러리 포함 4 7 특수 파일 (일반적으로 /dev에서 찾을 수 있는 장치) 및 장치 드라이버 5 4 파일 형식 및 규칙 6 6 비디오 게임 및 화면 보호기 7 5 기타 8 1M 시스템 관리 명령어 및 데몬
POSIX API는 2절과 3절에 모두 있으며, 2절에는 시스템 콜로 구현된 API가, 3절에는 라이브러리 루틴으로 구현된 API가 있다.
일부 시스템에는 다음과 같은 추가 섹션이 있을 수 있다.섹션 설명 0 C 라이브러리 헤더 파일 (Unix v6) 9 커널 루틴 (FreeBSD, SVR4, Linux)[17][15] l LAPACK 라이브러리 함수[19] n Tcl/Tk 명령어 x X 윈도 시스템
일부 섹션은 접미사를 사용하여 더 세분화된다. 예를 들어, 일부 시스템에서 3C 섹션은 C 라이브러리 호출용이고, 3M은 수학 라이브러리용 등이다. 이로 인해 8절(시스템 관리 명령어)은 때때로 주 명령어 섹션의 1M 하위 섹션으로 된다. 일부 하위 섹션 접미사는 섹션 전체에서 일반적인 의미를 갖는다.
5. 레이아웃
그 외에도 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. 변환

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