MAN(1) | 설명서 페이저 유틸리티 | MAN(1) |
이름¶
man - 시스템 참고 설명서 인터페이스
개요¶
man [man options] [[section]
page ...] ...
man -k [apropos options] regexp ...
man -K [맨 페이지
옵션] [절] 용어 ...
man -f [whatis 옵션]
페이지 ...
man -l [맨 페이지
옵션] 파일 ...
man -w|-W [맨 페이지
옵션] 페이지 ...
설명¶
man 은 시스템 설명서 페이저입니다. man에 전달하는 각 페이지 인자는 보통 프로그램, 유틸리티, 함수의 이름입니다. 이 각각의 인자값에 해당하는 설명서 페이지를 그렇게 찾아낸 다음 표시합니다. 섹션 내용을 제공하는 경우, 설명서의 섹션 내용만 찾게끔 man에 지시합니다. 기본 동작은 사전 정의순(기본 참고)으로 가용 섹션의 모든 내용을 검색하고 페이지에 여러 섹션이 있다 하더라도 첫 페이지만 표시합니다.
하단 테이블에서는 설명서 섹션 번호와 페이지 형식을 나타냅니다.
1 | 실행 프로그램 또는 셸 명령 |
2 | 시스템 콜(커널에서 제공하는 함수) |
3 | 라이브러리 콜(프로그램 라이브러리에 있는 함수) |
4 | 특수 파일(보통 /dev에 있음) |
5 | 파일 형식 및 관례 예: /etc/passwd |
6 | 게임 |
7 | 기타(매크로 꾸러미 및 관례에 해당), 예: man(7), groff(7), man-pages(7) |
8 | 시스템 관리 명령(보통 루트 전용) |
9 | 커널 루틴 [비표준] |
설명서 페이지 에는 다양한 섹션이 들어있습니다.
관례상 섹션 이름에는 이름, 개요, 설정, 설명, 옵션, 종료 상태, 반환 값, 오류, 환경, 파일, 버전, 준수 대상, 참고, 버그, 예제, 저작자, 추가 참조가 있습니다.
다음 관례는 개요 섹션에 적용하며, 다른 섹션에 대해서는 지침으로 활용할 수 있습니다.
강조체 | 나타낸대로의 서체입니다. |
이탤릭체 | 적절한 인자로 대체합니다. |
[-abc] | [ ] 안에 들어간 어떤, 모든 인자는 선택 요소입니다. |
-a|-b | | 문자로 구분한 옵션은 함께 사용할 수 없습니다. |
인자 ... | 인자 는 반복해서 사용할 수 있습니다. |
[표현식] ... | [ ] 사이에 있는 전체 표현식 은 반복할 수 있습니다. |
정확한 출력 모양새는 출력 장치에 따라 다릅니다. 예를 들면, 터미널에서 실행할 때 man은 기울임체를 제대로 표시하지 못하며, 대신 밑줄로 나타내거나 다른 색상으로 바꿔 표시합니다.
명령 또는 함수의 묘사는 모든 가능한 실행에 일치해야만 하는 패턴입니다. 일부 경우에 한해 이 설명서 페이지의 개요 섹션에서 나타난 바와 같이 몇가지 예외적 실행 방법을 나타내주는 것이 좋습니다.
예제¶
- man ls
- 항목 (프로그램) ls의 설명서 페이지를 표시합니다.
- man man.7
- 7번 섹션부터 man 매크로 페이지의 설명서 페이지를 나타냅니다. ("man 7 man" 대신 나타내는 방식입니다.)
- man 'man(7)'
- 7번 섹션부터 man 매크로 페이지의 설명서 페이지를 나타냅니다. ("man 7 man" 대신 나타내는 방식입니다. 설명서 페이지의 교차 참조를 복사하여 붙여넣을 때 더 간편한 방식일 수 있습니다. 참고로 괄호는 셸의 동작을 막기 위해 따옴표 처리해야합니다.)
- man -a intro
- 설명서에 들어간 설명서 도입부 설명서 페이지의 모든 가용 부분을 완전히 나타냅니다. 완전히 나타낸 후 끝내거나 일부를 건너뛸 수도 있습니다.
- man -t bash | lpr -Pps
- 기본 troff 형식 또는 groff 형식으로 배시에 맞게 설명서 페이지 서식을 갖춘 후 ps 프린터로 전달(파이핑)합니다. groff의 기본 출력은 보통 포스트스크립트입니다. man --help 명령의 결과는 -t 옵션에 어떤 처리 프로그램이 붙었는지와 같은 내용을 설명해야합니다.
- man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
- 이 명령은 ./foo.1x.gz nroff 소스 설명서 페이지의 압축을 해제한 후 장치 독립(dvi) 파일로 서식에 따라 내용을 갖춥니다. -T 플래그가 stdout으로 페이저 없이 출력하기 때문에 출력 방향 재지정이 필요합니다. 출력 내용은 xdvi 같은 프로그램으로 보거나 또는 dvips 같은 프로그램을 활용하여 포스트스크립트 파일로 추가 처리 후 볼 수 있습니다.
- man -k printf
- 검색어 printf를 정규 표현식으로 활용하여 간단한 설명과 설명서 페이지 이름을 검색합니다. 일치하는 부분을 출력합니다. apropos printf. 명령과 동일합니다
- man -f smail
- smail에서 참조하는 설명서 페이지를 검색하고 찾은 내용의 간단한 설명을 출력합니다. whatis smail. 명령과 동일합니다
개요¶
사용자에게 가능하면 더 유연한 기능 선택권을 줄 수 있도록 man에 많은 옵션이 들어있습니다. 검색 경로, 섹션 순서, 출력 처리 프로그램을 바꿀 수 있으며, 다른 동작 및 세부 처리내용은 아래에 있습니다.
설정했다면, 다양한 환경 변수를 조사하여 man의 동작을 결정합니다. "catch-all" 변수 $MANOPT를 명령행 형식으로 어떤 문자열 값으로든 설정할 수 있습니다만, 여기에는 옵션 인자에 공백문자가 들어갈 경우 반드시 이스케이핑 처리(앞에 백슬래시를 붙임)를 해야 한다는 예외가 있습니다. man에서는 우선 자체 명령행을 해석하기 전에 $MANOPT 변수를 해석합니다. 이 옵션에는 명령행에 동일한 옵션이 있으면 무시합니다. $MANOPT의 모든 옵션 세트를 초기값으로 되돌리려면 초기 명령행 옵션에 -D를 지정하면 됩니다. 이렇게 하면 man에서 $MANOPT 변수에 지정한 옵션이 유효하더라도 "망각"하게 합니다.
설명서 페이지는 보통 /usr/share/man과 같은 디렉터리에 nroff(1) 형식으로 저장합니다. 일부 설치 문서는 성능 개선을 목적으로 캣 페이지로 사전 서식화하기도 합니다. 파일 저장 위치 세부 사항은 manpath(5)를 살펴보십시오.
이 꾸러미는 로캘로 제어하는 다중 언어 설명서 페이지를 지원합니다. 시스템에서 자동으로 구성해주지 않았다면 $LC_MESSAGES, $LANG, 또는 기타 시스템별 환경 변수를 원하는 POSIX 형식의 로캘로 지정해야합니다:
<언어>[_<대륙>[.<문자세트>[,<버전>]]]
로캘에 맞는 원하는 페이지가 있다면, 표준 (보통 미국 영어) 페이지로 나타냅니다.
이 꾸러미에 담긴 번역 중 여러분이 사용하시는 언어로 작성한 번역이 없어 해당 번역을 꾸러미에 넣고 싶다면, 이런 활동을 지원해 줄 프로젝트 관리자에게 문의하십시오.
제각각의 설명서 페이지는 보통 프로그램, 함수 또는 문서에 기록한 다른 주제, 꾸러미에 들어있지 않은 기타 주제의 프로젝트 관리자가 작성하고 관리합니다. 설명서 페이지가 빠졌거나 내용이 부족하다면 꾸러미 관리자에게 문의 사항을 보고하십시오.
다른 기능 및 확장 기능의 정보는 이 설명서 페이저에 있으니, 해당 꾸러미에 들어있는 문서를 읽으십시오.
기본¶
섹션 검색 순서는 아마도 $MANSECT 환경 변수 또는 /etc/manpath.config의 SECTION 지시자가 대신할 수 있습니다. 기본적으로 다음을 따릅니다:
서식화한 설명서 페이지는 pager로 표시합니다. 다양한 표시 방식을 지정하거나 기본 표시 방식으로 추력할 수 있습니다(자세한 내용은 -P 옵션 참조).
필터는 다양한 의미로 해석합니다. 우선 명령행 옵션 -p 또는 $MANROFFSEQ 환경 변수를 확인합니다. -p 옵션을 사용하지 않았고 환경 변수도 지정하지 않았다면 nroff 파일의 초기 행을 전처리 문자열로 해석합니다. 적절한 전처리기 문자열을 넣으려면, 첫번째 행은 다음과 같아야합니다
'\" <문자열>
문자열은 아래 -p 옵션에 대해 설명하는 문자 조합이 값이 될 수 있습니다.
위 어떤 방식으로든 필터 정보를 받지 못했다면, 기본 세트를 활용합니다.
서식 파이프라인은 필터와 기본 포매터(-t 옵션에 nroff 또는 [tg]roff)로 구성하고 실행합니다. 대신, 실행 프로그램 mandb_nfmt (또는 -t 옵션과 mandb_tfmt 값)이 맨 페이지 트리 루트에 있다면 그 실행 프로그램을 대신 실행합니다. 설명서 원본 파일과, 전처리 문자열, -T 또는 -E로 지정한 추가 장치를 인자로 전달합니다.
옵션¶
비인자 옵션은 명령행이든 $MANOPT 환경 변수든 어디에든 반복해서 사용해도 지장이 없습니다. 인자가 필요한 옵션이라면, 반복해서 사용할 때마다 앞서 사용한 인자 값을 무시합니다.
일반 옵션¶
- -C 파일, --config-file=파일
- ~/.manpath 기본값 대신 사용자 설정 파일을 활용합니다.
- -d, --debug
- 디버깅 정보를 출력합니다.
- -D, --default
- 이 옵션은 보통 가장 첫번째 옵션으로 실행하며 man's의 동작을 기본 동작으로 되돌립니다. 이 옵션을 활용하면 $MANOPT 변수에 사용한 옵션도 초기화합니다. -D 옵션 뒤에 따라오는 옵션은 옵션에서 설정한 값 대로 동작합니다.
- --warnings[=경고]
- groff 경고를 나타냅니다. 설명서 페이지의 원문의 무결성 검사를 수행할때 활용할 수 있습니다. warnings 값은 쉼표로 구분한 경고 이름 목록입니다. 지정하지 않으면 기본 이름은 "mac"입니다. info groff의 가용 경고 이름 목록을 보려면 “Warnings” 부분을 참고하십시오.
주요 동작 상태¶
- -f, --whatis
- whatis와 동일합니다. 설명서 페이지의 간단한 설명이 있으면 해당 부분을 출력합니다. 자세한 내용은 whatis(1)를 참고하십시오.
- -k, --apropos
- apropos와 동일합니다. 검색어에 맞게 설명서 페이지의 간단한 설명을 검색하고 일치하는 부분을 나타냅니다. 자세한 내용은 apropos(1)를 참고하십시오.
- -K, --global-apropos
- 모든 설명서 페이지의 원문을 검색합니다. 브루트-포스 검색 방식을 수행하며, 시간이 좀 걸릴 수 있습니다. 가능하다면 섹션을 지정하여 검색할 페이지 수를 줄이는게 좋습니다. 검색어는 간단한 문자열(기본)이거나, --regex 옵션을 활용하는 경우 정규 표현식입니다.
- 참고로 이 검색 방식은 설명서 페이지의 렌더링 문서가 아닌 원본을 검색하며, 원본 파일의 주석도 검색하므로 잘못된 결과가 들어있을 수도 있습니다. 랜더링 문서를 검색하는 방식은 훨씬 느립니다.
- -l, --local-file
- "로컬" 모드로 동작합니다. 시스템 설명서 모음ㄴ을 검색하는 대신 로컬 설명서 파일을 서식 구성하며 나타냅니다. 각 설명서 페이지 인자는 올바른 형식의 nroff 원본 파일로 해석합니다. 캣 파일을 만들지는 않습니다. '-'이 인자 중 하나로 들어있다면, 입력 원본은 표준 입력을 취합니다. 이 옵션을 사용하지 않고, man에서 필요한 페이지 찾기에 실패하면, 오류 메시지를 나타내기 전에 이름을 파일 이름처럼 활용하고 정확한 대상을 검색하는 모드로 이 옵션을 지정했을 때처럼 동작을 시도합니다.
- -w, --where, --path, --location
- 설명서 페이지를 실제로 나타내지는 않지만 nroff 원본 파일을 서식화할 위치를 출력합니다. -a 옵션도 지정했다면, 검색어와 일치하는 모든 원본 파일의 위치를 출력합니다.
- -W, --where-cat, --location-cat
- 설명서 페이지를 실제로 나타내지는 않지만 나타낼 캣 파일의 사전 서식화 위치를 출력합니다. -a 옵션도 지정했다면, 검색어와 일치하는 모든 캣 파일의 사전 서식화 위치를 출력합니다.
- -w 옵션과 -W 옵션을 사용하면 원본 파일과 캣 파일을 공백 문자로 구분하여 출력합니다. -w, -W, -a 옵션을 모두 사용했다면, 조건에 만족하는 모든 파일에 대해 동일 동작을 수행합니다.
- -c, --catman
- 이 옵션은 일상 용도로 사용하지 않으며 catman 프로그램에서만 사용해야합니다.
- -R 인코딩, --recode=인코딩
- 보통 방식으로 설명서 페이지를 서식화하는 대신, 지정 인코딩 값으로 원본을 변환 출력합니다. 원본 파일 인코딩을 이미 알고 있다면, manconv(1)를 직접 활용할 수 있습니다. 그러나 이 옵션은 설명서 페이지 계층과 유사한 위치 구조로 이미 설치한 각각의 설명서 페이지의 인코딩 상태를 정확하게 지정하지 않고도 단일 인코딩으로 변환할 수 있게 합니다.
- man-recode(1) 명령은 여러 페이지를 한번에 변환하도록 인터페이스를 설계하여 훨씬 빠를 수 있으므로, 여러 설명서 페이지를 변환하는 대신 고려해보십시오.
설명서 페이지 찾기¶
- -L 로캘, --locale=로캘
- man은 보통 $LC_MESSAGES와 $LANG 같은 다양한 환경 변수를 조사하는 C 함수 setlocale(3)을 호출하여 현재 로캘을 결정합니다. 결정한 값을 임시로 대체 적용하려면 로캘 문자열을 바로 man에 전달하는 이 옵션을 사용하십시오. 참고로 페이지가 실제로 시작하는 부분을 검색하기 전까지는 아무런 영향을 주지 않습니다. 도움말 메시지와 같은 출력 결과는 항상 로캘을 초기에 결정한 다음 나타납니다.
- -m 시스템[,...], --systems=시스템[,...]
- 시스템에 다른
운영체제 설명서
페이지 접근 권한이
있다면 이 옵션을
활용하여 접근해볼 수
있습니다. NewOS의 설명서
페이지 모음에서
설명서 페이지를
검색하려면, -m NewOS
옵션을 사용하십시오.
시스템값은 여러 운영체제 이름을 쉼표로 구분하여 지정할 수 있습니다. 자체 운영 체제 설명서 페이지 검색 내용을 넣으려면, 인자 문자열로 시스템 이름 man을 넣으십시오. 이 옵션은 $SYSTEM 환경 변수 값보다 우선합니다.
- -M 경로, --manpath=경로
- 활용할 대체 맨
페이지 경로를
지정합니다.
기본적으로 man은
검색 경로를 지정할
목적으로 manpath에서
가져온 코드를
활용합니다. 이
옵션은 $MANPATH 환경
변수를 대체하며, -m
옵션을 무시합니다.
맨 페이지 경로로 지정한 경로는 설명서 페이지 계층의 루트여야 하며, 그 아래로 man-db 설명서("설명서 페이지 시스템" 하위)에서 설명한 대로의 섹션 구조를 갖추어야합니다. 설명서 페이지를 계층 밖에서 보려면 -l 옵션을 살펴보십시오.
- -S 목록, -s 목록, --sections=목록
- 주어진 목록 값은 콜론 또는 쉼표로 구분한 섹션의 목록이며, 설명서 섹션의 검색 순서를 결정하는데 활용합니다. 이 옵션은 $MANSECT 환경 변수를 대체합니다. (-s 스펠링은 System V 호환 용도입니다.)
- -e 하위확장, --extension=하위확장
- 일부 시스템에서는 Tcl 꾸러미에 들어있는 거대 설명서 꾸러미와 같은게 주요 설명서 페이지 계층에 들어가 있을 수도 있습니다. exit(3)와 같이 동일한 이름을 가진 두 설명서 페이지의 문제를 회피하려면, Tcl 페이지는 보통 섹션 l에 모두 할당합니다. 이렇게 하면 불행해지기에, 이제는 올바른 섹션에 페이지를 넣을 수가 있으며, 이 경우 exit(3tcl)과 같은 일부 "확장"을 할당할 수도 있습니다. 일반적인 동작으로는 man에서는 exit(3tcl)보다는 exit(3) 내용을 나타냅니다. 이 상황을 조정해서 어떤 페이지에 이 섹션이 있는지 알아야만 하는 상황을 피하려는 목적으로, 이제부터는 man에 어떤 꾸러미에 페이지가 들어갔는지 나타내는 하위확장 문자열을 넣을 수 있습니다. 위 예제를 활용하면, man에 -e tcl 옵션을 지정했을 때 *tcl 확장자를 가진 페이지에 한해 검색을 제한할 수 있습니다.
- -i, --ignore-case
- 설명서 페이지 검색시 대소문자를 무시합니다. 기본 동작입니다.
- -I, --match-case
- 설명서 페이지를 대소문자를 구분하여 검색합니다.
- --regex
- apropos(1) 명령과 같이, 각 페이지 인자를 정규 표현식으로 하여 검색 결과상 일치하는 페이지의 이름 또는 설명 부분이 들어있는 모든 페이지를 나타냅니다. 정규 표현식을 활용하여 검색할 경우 "최상의" 페이지를 골라내는 적당한 방법이 없기 때문에 이 옵션에서는 -a 옵션의 동작을 암묵적으로 실행합니다.
- --wildcard
- apropos(1) --wildcard 명령과 같이, 각 페이지 셸 방식 와일드카드 인자로 하여 검색 결과상 일치하는 페이지의 이름 또는 설명 부분이 들어있는 모든 페이지를 나타냅니다. 페이지 인자는 전체 이름 또는 설명, 설명에서 단어 단위로 일치해야 합니다. 와일드카드롤 활용하여 검색할 경우 "최상의" 페이지를 골라내는 적당한 방법이 없기 때문에 이 옵션에서는 -a 옵션의 동작을 암묵적으로 실행합니다.
- --names-only
- --regex 옵션 또는 --wildcard 옵션을 사용했다면, whatis(1) 에서 쓰는대로 페이지 설명이 아닌 페이지 이름만 비교합니다. 그렇지 않을 경우, 결과가 나타나지 않습니다.
- -a, --all
- 기본적으로 man은 가장 적당한 설명서 페이지를 찾아 나타낸 후에 빠져나갑니다. 이 옵션을 활용하여 man 에서 검색어에 일치하는 모든 설명서를 나타내도록 강제합니다.
- -u, --update
- 이 옵션은 man에서 설치한 설명서 페이지의 데이터베이스 캐시를 업데이트합니다. 드문 상황에서만 필요하며, 보통은 이 대신 mandb(8)를 실행하는게 좋습니다.
- --no-subpages
- 기본적으로 man은
명령행에 주어진
설명서 페이지 이름을
하이픈 또는 밑줄
문자가 들어간 단일
설명서 페이지 이름과
동일하게 해석하려
합니다. 이 해석
방식으로 여러 하위
명령을 구현한
프로그램의 일반
패턴을 지원하여,
하위 명령 자체를
실행할 때 활용할 수
있는 각각의 유사
문법에 대한 설명서
페이지를 보여줄 수
있습니다. 예를 들면:
$ man -aw git diff /usr/share/man/man1/git-diff.1.gz
이 동작을 막으려면 --no-subpages 옵션을 사용하십시오.
$ man -aw --no-subpages git diff /usr/share/man/man1/git.1.gz /usr/share/man/man3/Git.3pm.gz /usr/share/man/man1/diff.1.gz
서식화 출력 제어¶
- -P 페이저, --pager=페이저
- 사용할 출력 페이저를
지정합니다.
기본적으로 man은
pager를 사용하며,
시스템에 없거나
동작하지 않으면 이
대신 cat을
사용하기도 합니다.
이 옵션은 $PAGER 환경
변수를 대신하는 $MANPAGER
환경 변수를
대체합니다. 이
옵션은 -f 또는 -k
옵션을 같이 붙여서
사용할 수 없습니다.
값은 간단한 명령 이름 또는 인자 값이 들어간 명령일 수 있으며, 셸 따옴표 처리(백슬래시, 작은 따옴표, 큰 따옴표)를 활용해야 합니다. 다중 명령을 연결하는 파이프는 사용하지 말아야 합니다. 정 필요하다면, 인자 또는 표준 입력 둘 중 하나 또는 둘 다를 나타내는 파일을 취하는 래퍼 스크립트를 활용하십시오.
- -r 프롬프트, --prompt=프롬프트
- less 최근 버전을
페이저로 사용한다면,
man에서는 페이저
프롬프트와 몇가지
민감한 옵션 설정을
시도합니다. 기본
프롬프트는 다음과
같습니다
설명서 페이지 이름(섹션) 행 x
이름에는 설명서 페이지 이름이, 섹션에는 설명서 페이지를 찾은 섹션을, x에는 현재 행 번호가 들어갑니다. $LESS 환경 변수를 사용하면 이 동작을 수행할 수 있습니다.
-r 옵션과 문자열을 지정하면 이 기본값을 대신합니다. 문자열에는 현재 설명서 페이지의 이름과 "(" 및 ")"으로 둘러쌓인 섹션 이름으로 확장할 수 있는 $MAN_PN 텍스트가 들어갈 수 있습니다. 기본값을 생성하는데 활용하는 문자열은 다음과 같이 표현할 수 있습니다
\ 설명서\ 페이지\ \$MAN_PN\ ?ltline\ %lt?L/%L.:
byte\ %bB?s/%s..?\ (END):?pB\ %pB\\%..
(도움말을 보려면 h 키를, 끝내려면 q 키를 누르십시오)여기 세 줄은 가독성을 목적으로 특별히 깨져있습니다. 의미를 이해하려면 less(1) 설명서 페이지를 참고하십시오. 프롬프트 문자열을 우선 셸에서 처리합니다. 모든 큰 따옴표, 역 따옴표, 백 슬래시는 앞에 백슬래시를 붙여 이스케이핑해야합니다. 프롬프트 문자열은 less 추가 옵션이 따라오게끔 $ 기호를 이스케이핑한 상태로 끝나야합니다. 기본적으로 man은 -ix8 옵션을 설정합니다.
아래에 설명하는 $MANLESS 환경 변수는 명령행에 어떤 옵션도 지정하지 않았을 때 기본 프롬프트 문자열로 사용합니다.
- -7, --ascii
- 순수 ascii(7) 설명서
페이지를 7비트
터미널 또는 터미널
에뮬레이터에서 볼
경우 latin1(7) 장치
설명과 GNU nroff를
활용할 경우 일부
문자가 제대로
나타나지 않을 수
있습니다. 이 옵션은
순수 ascii 설명서
페이지를 latin1 장치에
ascii로 표시할 수 있게
합니다. latin1 원문은
변환하지 않습니다.
다음 표에서는 수행할
변환을 보여줍니다.
일부는 GNU nroff의 latin1(7)
장치에서만 제대로
나타납니다.
설명 8진수 latin1 ascii 연속 하이픈 255 ‐ - (가운데 점) 267 • o 양음 강세 264 ´ ' 곱셈 기호 327 × x utf8 컬럼이 제대로 나타난다면 utf8 문자와 별도 옵션을 터미널에 설정할 필요가 없습니다. utf8 컬럼이 이상적으로 나타난다면 이 옵션으로 이 페이지를 제대로 보고 계신 상황이며, 제대로 나타나지 않는다면 man이 utf8 장치 설명으로 이 페이지를 제대로 구성하지 못하는 상황입니다. utf8 컬럼이 빠졌거나 깨졌다면, 이 옵션으로 설명서 페이지를 봐야 합니다.
이 옵션은 -t, -H, -T, -Z 옵션 중 하나를 활용하면 무시하며, 다른 GNU 프로그램이 아닌 nroff에는 쓸모가 없습니다.
- -E 인코딩, --encoding=인코딩
- 기본 값이 아닌 문자 인코딩에 맞춰 출력 내용을 만듭니다. 하위 호환성을 목적으로, 인코딩은 UTF-8 실제 문자 인코딩 이름과 마찬가지인, ascii, latin1, utf8과 같은 nroff 장치 이름입니다.
- --no-hyphenation, --nh
- 보통, nroff는 행에 있는
단어가 행 공간을
넘어가지 않게 해야
할 필요가 있을 때,
줄이 바뀌는 부분에서
하이픈이 들어가지
않은 단어에 하이픈을
자동으로 넣습니다.
이 옵션은 자동
하이픈 처리를 끄며
이미 하이픈이 들어간
단어에 대해서만
하이픈(및 개행)
처리합니다.
설명서 페이지를 작성하는 중 nroff에서 적절하지 못한 위치에서 단어에 하이픈 처리하는 현상을 막으려면 이 옵션을 사용하지 마시고, nroff 문서의 도움을 받으십시오. 예를 들면, 단어 안에 "\%"를 넣어 하이픈 처리할 부분을 나타내거나, 단어 앞 부분에 "\%"을 넣어 하이픈 처리를 막을 수 있습니다.
- --no-justification, --nj
- 보통, nroff에서는
자동으로 원문을 양쪽
여백에 맞춰 균등
배분 합니다. 이
옵션은 완전 정렬을
비활성화하며, 좌측
여백을 기준으로
정렬하여, "우측이
들쑥날쑥한(좌측
정렬)" 원문으로
구성할 수 있습니다.
설명서 페이지를 작성하는 중 nroff에서 일부 문단 정렬을 막으려면, 이 옵션을 사용하지 마시고, nroff 문서의 도움을 받으십시오. 예를 들면 ".na", ".nf", ".fi", ".ad" 요청으로 임시로 정렬과 채움을 막을 수 있습니다.
- -p 문자열, --preprocessor=문자열
- nroff, troff, groff 실행 전 실행할 전처리 프로그램의 순서를 지정합니다. 전처리 프로그램 전부를 다 설치하진 않습니다. 일부 전처리 프로그램이 있으며, eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r) 과 같이 각 문자를 전처리기 지정 목적으로 사용합니다. 이 옵션은 $MANROFFSEQ 환경 변수를 대체합니다. zsoelim는 항상 전처리기 실행에 있어 가장 먼저 실행합니다.
- -t, --troff
- 표준 출력으로 내보낼 설명서 페이지를 서식화하려면 groff -mandoc를 사용합니다. 이 옵션은 -H, -T, -Z 옵션을 같이 사용할 필요가 없습니다.
- -T[장치], --troff-device[=장치]
- 이 옵션은 groff(또는 troff) 출력을 기본 장치가 아닌 지정 장치에 맞춰 적절한 출력으로 바꿉니다. -t 옵션의 동작을 암묵적으로 실행합니다. dvi, latin1, ps, utf8, X75, X100을 (Groff-1.17과 제공하는) 예로 들 수 있습니다.
- -H[브라우저], --html[=브라우저]
- 이 옵션은 groff가 HTML을 출력하고 웹 브라우저에서 나타내게합니다. $BROWSER 환경 변수 또는, 브라우저 인자를 지정하면 추가로 이 브라우저를 선택하며, 이 값이 없다면 컴파일 시점에 지정한 기본값(보통 lynx)으로 선택합니다. 이 옵션은 -t 옵션의 동작을 암묵적으로 실행하며, GNU troff 프로그램만 같이 동작합니다.
- -X[dpi], --gxditview[=dpi]
- 이 옵션은 gxditview 프로그램으로 그래픽 창을 띄워 이 안에 groff 출력 결과를 나타냅니다. dpi(인치당 점 수) 값은 75, 75-12, 100, 100-12 중 하나이며, 기본값은 75입니다. -12 변형값은 12-포인트 기반 서체를 활용합니다. 이 옵션은 각 X75, X75-12, X100, X100-12 장치에 대해 -T 옵션의 동작을 암묵적으로 수행합니다.
- -Z, --ditroff
- groff는 troff를 실행한 후 적절한 후처리 프로그램을 활용하여 선택한 장치에 맞는 출력물을 만들어냅니다. groff -mandoc이(가) groff이면, 이 옵션을 groff로 전달하고 후처리 프로그램 활용을 생략합니다. -t 옵션의 동작을 암묵적으로 실행합니다.
도움말 보기¶
- -?, --help
- 도움말 메시지를 출력하고 나갑니다.
- --usage
- 간단한 사용법 메시지를 출력하고 나갑니다.
- -V, --version
- 버전 정보를 출력합니다.
종료 상태¶
- 0
- 프로그램 실행 성공.
- 1
- 사용법, 문법, 구성 파일 오류.
- 2
- 처리 오류.
- 3
- 하위 프로세스가 0값이 아닌 종료 상태를 반환.
- 16
- 최소한 하나의 페이지/파일/검색어가 없거나 일치하는 내용이 없음.
환경¶
- MANPATH
- $MANPATH를 설정하면, 이
값은 설명서 페이지
검색 경로로
활용합니다.
환경 변수 처리 방식의 기본 동작 및 자세한 내용은 manpath(5)의 검색 경로 섹션을 살펴보십시오.
- MANROFFOPT
- 매번 man이 서식 구성 프로그램을 실행할 때마다(nroff, troff, groff), $MANROFFOPT의 내용을 서식 구성 프로그램 명령행에 추가합니다.
- MANROFFSEQ
- $MANROFFSEQ를 설정하면, 이 값으로 각 설명서 페이지를 전달할 전처리 프로그램 모음을 결정합니다. 기본 전처리 프로그램 목록은 시스템에 따라 다릅니다.
- MANSECT
- $MANSECT를 설정하면, 이 값은 콜론 구분 섹션 목록이며, 어떤 설명서 섹션을 어떤 순서로 검색할 지 결정하는데 활용합니다. 기본은 /etc/manpath.config 파일의 SECTION 지시자에서 우선적으로 값을 적용하지 않는 한, "1 n l 8 3 0 2 3type 3posix 3pm 3perl 3am 5 4 9 6 7"입니다.
- MANPAGER, PAGER
- $MANPAGER 또는 $PAGER를
설정하면($MANPAGER사용을
권장), 이 값을 설명서
페이지를 표시할
프로그램 이름으로
사용합니다.
기본적으로, pager을(를)
사용하지만, pager이(가)
없거나 실행할 수
없으면, cat을(를) 대신
활용합니다.
값은 간단한 명령 이름 또는 인자 값이 들어간 명령일 수 있으며, 셸 따옴표 처리(백슬래시, 작은 따옴표, 큰 따옴표)를 활용해야 합니다. 다중 명령을 연결하는 파이프는 사용하지 말아야 합니다. 정 필요하다면, 인자 또는 표준 입력 둘 중 하나 또는 둘 다를 나타내는 파일을 취하는 래퍼 스크립트를 활용하십시오.
- MANLESS
- $MANLESS를 설정하면, -r옵션을 사용하여 전달하는 less 페이저 프로그램의 기본 프롬프트 문자열로 활용합니다(그래서 $MAN_PN 텍스트가 나타나면 동일한 방식으로 확장함). 예를 들면, 프롬프트 문자열을 “내 프롬프트 문자열”로 무조건 설정하고 싶다면, $MANLESS 값을 ‘-Ps내 프롬프트 문자열’ 값으로 설정합니다. -r 옵션을 사용하면 이 환경 변수 값을 무시합니다.
- BROWSER
- $BROWSER를 설정하면, 이 값은 콜론으로 구분한 명령 목록이며, man --html 명령에서 웹 브라우저 시작을 시도할 때 순차적으로 활용합니다. 각 명령에서, %s은(는) groff의 HTML 출력 내용이 들어간 파일 이름으로 바뀌며, %%는 단일 퍼센트 기호(%), %c는 콜론(:)으로 바뀝니다.
- SYSTEM
- $SYSTEM을 설정했다면, -m 옵션의 인자 지정과 같이 동작합니다.
- MANOPT
- $MANOPT를 설정하면, man 명령행에 앞서 들어있는 값을 우선 해석하며, 유사 양식으로 출력 결과물을 냅니다. 다른 man 개별 환경 변수와 같이 명령행 옵션으로 표현할 수 있으며, 그렇기에 $MANOPT에 들어간 옵션 후보는 우선적으로 지정하여 오래된 옵션으로 간주합니다. 옵션의 인자 부분으로 해석해야 할 모든 공백문자는 이스케이핑 처리해야합니다.
- MANWIDTH
- $MANWIDTH를 설정하면, 설명서 페이지를 서식화해야 할 행 길이로 활용합니다. 이 값을 설정하지 않으면, 설명서 페이지는 현재 터미널의 행 길이에 맞춰 ($COLUMNS 값과 ioctl(2)이 있다면 이를 활용하든지 둘 다 없으면 80 문자 길이로 대체하여) 적당하게 서식화 처리를 해줍니다. 캣 페이지는 기본 서식만 활용할 수 있을 때만 저장하는데, 이 때는 터미널 행 길이가 66 부터 80 문자 사이일 경우에만 해당합니다.
- MAN_KEEP_FORMATTING
- 보통, 출력 내용이 터미널(파일 또는 파이핑)로 가지 않으면, 서식화 문자를 무시하여 별도의 도구 없이도 쉽게 읽을 수 있게 합니다. 그러나, $MAN_KEEP_FORMATTING를 비워두지 않았다면, 서식화 문자를 그대로 유지합니다. 서식화 문자를 해석할 수 있는 man에서 줄을 바꿀 때 요긴할 수 있습니다.
- MAN_KEEP_STDERR
- 보통, 출력 내용이 터미널(보통 페이저)로 간다면, 설명서 페이지 서식화 버전을 만드는데 활활용하는 명령의 오류 출력은 무시하여 페이저 표시상 문제가 없게 해줍니다. groff와 같은 프로그램은 타이포 그래피 문제 처럼 설명서 페이지 출력에 따르는 정렬 불량 문제 같은 식의 상대적으로 별로 중요하지 않은 오류 메시지를 냅니다. 그러나 일부 사용자는 어쨌든 보고 싶어하기에, $MAN_KEEP_STDERR 값이 비어있지 않으면, 평상시대로 오류 출력을 나타냅니다.
- MAN_DISABLE_SECCOMP
- 리눅스에서, man은 보통 신뢰하지 않는 데이터를 처리하는 하위 프로세스를 seccomp(2) 샌드 박스에 넣어 실행합니다. 이렇게 하면 순차 설명서 페이지에 대해 복잡한 코드 해석을 안전하게 진행할 수 있습니다. 화면에 나타낼 페이지의 내용과 관련이 없는 어떤 문제 때문에 뭔가 잘못됐을 경우 $MAN_DISABLE_SECCOMP에 비어있지 않은 아무 값을 넣어 샌드박스 동작을 끌 수 있습니다.
- PIPELINE_DEBUG
- $PIPELINE_DEBUG 환경 변수를 "1" 로 설정하면, man에서는 실행하는 각 하위 프로세스별 디버깅 메시지를 표준 오류에 출력합니다.
- LANG, LC_MESSAGES
- 시스템과 구현체에 따라 $LANG 과 $LC_MESSAGES 둘 중 하나 또는 둘 다 현재 메시지 로캘의 확인 대상이 됩니다. man은 (가능할 경우) 지정한 로캘로 메시지를 나타냅니다. 정확한 세부 내용은 setlocale(3) 을 참고하십시오.
파일¶
- /etc/manpath.config
- man-db 구성 파일.
- /usr/share/man
- 전역 맨 페이지 계층.
추가 참조¶
apropos(1), groff(1), less(1), manpath(1), nroff(1), troff(1), whatis(1), zsoelim(1), manpath(5), man(7), catman(8), mandb(8)
일부 꾸러미의 문서는 info(1) 또는 HTML과 같은 다른 형식으로 들어있을 수도 있습니다.
이력¶
1990년, 1991년 – 초기에 John W. Eaton (jwe@che.utexas.edu)이 작성함.
1992년 12월 23일: Willem Kasdorp (wkasdo@nikhefk.nikef.nl)가 제공한 버그 수정 코드를 Rik Faith (faith@cs.unc.edu)가 적용함.
1994년 4월 30일 – 2000년 2월 23일: Wilf. (G.Wilford@ee.surrey.ac.uk)가 일부 참여 구성원과 함께 이 꾸러미를 개발하고 도움말 문서를 같이 관리함.
1996년 10월 30일 – 2001년 3월 30일: Fabrizio Polacco <fpolacco@debian.org>가 데비안 프로젝트 커뮤니티의 도움으로 이 꾸러미를 관리하고 개선함.
2001년 3월 31일 – 현재: Colin Watson <cjwatson@debian.org>이 man-db를 개발하고 관리함.
버그¶
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db
2023-01-08 | 2.11.2 |