Man page/Navigate
이 안내서는 man 을 사용하여 맨페이지를 탐색하는 방법을 보여줍니다.
도입부
man 프로그램
누구나 몇번 쯤은 리눅스를 사용하면서 그걸 사용해본 경험이 있을 것입니다. "그것"은 바로 man
명령입니다. 그러나 man 프로그램 자체는 자체 생성의 단순화를 하기 보단, 페이지를 스크롤 하는 이상의 몇가지 추가 기능을 보유하고 있을 뿐입니다. 이 문서가 이 기능이 눈에 좀더 잘 들어오도록 도움이 되길바랍니다.
man 배치
맨페이지는 주소 /usr/share/man 디렉터리에 저장되어 있습니다. 그러나 맨페이지의 위치를 MANPATH
환경 변수에 명시한 대로, man 프로그램이 맨페이지를 가져올 수 있습니다. 젠투는 보통 /etc/env.d의 MANPATH
변수에 저장합니다. 이 디렉터리에 manX 형식의 몇가지 폴더가 있는데 X는 장 번호를 의미합니다. 예를들어 표준 맨 배치는 다음과 같습니다:
user $
ls /usr/share/man | grep man
man0p man1 man1p man2 man3 man3p man4 man5 man6 man7 man8 man9 mann
실제 장 번호 부여는 표준처럼 보입니다. 그러나 mann 폴더가 있고 몇가지 man#p 폴더가 있습니다. 다음 표 목록은 위에서 언급한 맨페이지 디렉터리를 나타내며 어떤 내용이 들어있는지 보여줍니다:
Man 디렉터리 | 설명 |
---|---|
man0p | 다른 디렉터리 끝에 p가 붙은것처럼 이 디렉터리의p 는 POSIX를 의미합니다. 이 디렉터리에 있는 맨페이지는 다양한 POSIX 헤더 파일의 기능을 설명합니다.
|
man1 | 이 장은 표준 명령 내용으로 구성되어 있습니다. 대부분 프로그램은 이곳에 프로그램의 맨 페이지를 이곳에 놓기 때문에, 이 장은 상당히 커닐 수 있습니다. |
man1p | 이 장은 1장에서 설명한 명령에 대한 POSIX 버전을 설명합니다. 기본 명령만을 설명하므로 man1보단 내용이 적습니다. |
man2 | 이 장에서는 리눅스 커널 시스템 호출을 설명합니다. |
man3 | 이 장에서는 표준 C 라이브러리 함수를 설명합니다. |
man4 | 이 장에서는 특수 장치를 설명합니다. 이 장치는 커널과 관련되어 있지만, Xorg-X11 의 항목도 여기에 있습니다.
|
man5 | 이 장에서는 각 파일간의 관계 구조와 프로그램에서 어떤 파일을 사용하는지 설명합니다. 아마도 portage 파일 구조 설명에 대해 man 5 portage 문서를 참고하고, make.conf 구성에 대해 man 5 make.conf 를 참고하여 이 문서를 읽는데 상당히 익숙할 것입니다.
|
man6 | 이 장에서는 게임 및 기타 특별한 설정 도구를 소개합니다. |
man7 | 이 장에서는 표준과 기타 요소에 대해 설명합니다. 여기 포함하는 표준의 예로, 문자세트, SQL 구문, ISO 표준, 정규표현식이 있습니다. |
man8 | 이 장에서는 관리자 명령을 설명합니다(보통 루트 사용자가 실행합니다). |
man9 | 이 섹션에서는 드물지만 커널의 다양한 부분에 대한 문서가 포함됩니다. |
mann | 이 섹션은 주로 Tcl/Tk 가 사용합니다. n 은 new를 의미합니다.
|
내용이 더 늘어나지도 않고 자세하지도 않지만, 대부분의 사람들이 관심을 가질 맨 페이지의 범위를 포함합니다. 그러나 가끔은 이 표에서 본대로 어떤 섹션에 무엇이 있는지 쉽게 찾을 수 있습니다. 다음 장에서는 이 배치를 man 명령을 사용하여 차근차근 둘러보겠습니다.
man 배치 다루기
man 배치 탐색하기
이제 맨 페이지의 배치를 이해했으므로 명령으로 이곳저곳 찾아볼 수 있습니다. 가끔은 우리가 찾을 맨 페이지를 좁은 범위에서 필요할 수가 있습니다. 첫번째 방법은 섹션별로 찾는 방식으로 해결할 수 있습니다. 섹션 설명을 찾아보려면, 다음처럼 man section intro
명령을 사용할 수 있습니다:
user $
man 3 intro
## (Output slightly modified to fit the document properly) INTRO(3) Linux Programmer's Manual INTRO(3) NAME intro - Introduction to library functions DESCRIPTION This chapter describes all library functions excluding the library functions described in chapter 2, which implement system calls. There are various function groups which can be identified by a letter which is appended to the chapter number: ....
불행하게도, 언제나 동작하는 것은 아닙니다! 그러나 맨 명령이 여러가지 검색 결과를 반환하도록 하는 다른 방법이 있습니다(가령 같은 이름을 가진 라이브러리 콜과 시스템 명령이 있습니다). 이렇게 하려면, man 명령의 매개변수로 -K
를 사용합니다:
user $
man -K sleep
/usr/share/man/man0p/time.h.0p.gz? [ynq] n /usr/share/man/man0p/unistd.h.0p.gz? [ynq] n /usr/share/man/man2/alarm.2.gz? [ynq] n /usr/share/man/man2/pause.2.gz? [ynq] n /usr/share/man/man2/futex.2.gz? [ynq] n /usr/share/man/man2/nanosleep.2.gz? [ynq] y /usr/share/man/man2/semop.2.gz? [ynq] q
내용이 좀 많을 수도 있습니다. 이 경우 더 확실한 키워드를 지정하는 것이 좋습니다. 이제 맨 페이지를 어디서 찾는지 알았으니 다음 장에서 맨 페이지 보는 방법을 살펴보도록 하겠습니다.
맨 페이지 보기
맨 페이지는 두가지 방법으로 볼 수 있습니다. 첫번째 방법은 man [맨페이지 이름]
이고, 두번째 방법은 man [장번호] [맨페이지 이름]
입니다. 예로서 bc
를 보도록 하겠습니다. bc
에 딸려오는 맨 페이지를 첫번째 방법으로 보도록 하겠습니다(아마 bc
의 맨 페이지는 가장 낮은 번호의 장에 있을 터이므로 1장일 것입니다):
user $
man bc
bc(1) bc(1) NAME bc - An arbitrary precision calculator language ...
그런데, 원하는 POSIX 버전이 뭘까요? 두번째 방식을 사용할 수 있습니다:
user $
man 1p bc
BC(P) POSIX Programmer's Manual BC(P) NAME bc - arbitrary-precision arithmetic language ...
이렇게 하면 맨 페이지가 나타납니다. 이제 맨 페이지를 받았고 다룰 차례가 되었습니다. 다음장에서는 탐색 및 검색 방법을 살펴보겠습니다.
맨 페이지 탐색 및 검색
맨 페이지 탐색은 정말로 간단합니다. ↑, ↓ 화살표 키를 사용하여 줄 단위로 위 아래로 이동합니다. Page up과 Page down를 사용하여 페이지 단위로 이동할 수 있습니다. 그러나 이 탐색 방식은 기본 페이저 less
를 PAGER
환경 변수에 설정했을 때를 가정합니다. less는 탐색에 필요한 명령을 단순화 했지만, 보통 화살표 키만으로 충분합니다.
e ^E j ^N CR * 한 줄 앞으로 (또는 N 줄).
y ^Y k ^K ^P * 한 줄 뒤로 (또는 N 줄).
f ^F ^V SPACE * 창 하나 앞으로 (또는 N 줄).
b ^B ESC-v * 창 하나 뒤로 (또는 N 줄).
z * 창 하나 앞으로 (그리고 N번째 창으로 이동).
w * 창 하나 뒤로 (그리고 N번째 창으로 이동).
ESC-SPACE * 창 하나 앞으로 이동하지만, 파일 끝에서 멈추지 않음.
d ^D * 창 반쯤 앞으로 (그리고 N번째 창 절반 길이에 위치).
u ^U * 창 반쯤 뒤로 (그리고 N번째 창 절반 길이에 위치).
ESC-) RightArrow * 화면 폭 반쪽 길이만큼 오른쪽으로 밀어보기(또는 N 번째).
ESC-( LeftArrow * 화면 폭 반쪽 길이만큼 왼쪽으로 밀어보기(또는 N 번째).
F 계속 앞으로. "tail -f"와 유사함.
그러나 검색하는 것은 흥미롭습니다. 두가지 기본 검색방식이 있는데 하나는 /pattern
이고, 나머지 하나는 ?pattern
입니다. 첫번째는 앞으로 검색하고, 두번째는 뒤로 검색합니다. pattern
은 man 7 regex
에 설명한대로의 정규표현식입니다. emerge
를 실행하는데 활용하는 -D
옵션 검색을 예로 들어보겠습니다. 먼저 emerge 맨 페이지를 띄우십시오:
user $
man emerge
이 명령을 실행하고 나서 화면에서 / 키를 눌러 화면 다음 단어를 검색하기 위해 항목 프롬프트를 띄우고 검색 패턴을 입력해보십시오:
gracefully handles updating installed packages to newer releases as well.
It handles both source and binary packages, and it can be used to create
binary packages for distribution.
EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES
/\-D
\
문자로 보통 정규표현식에서 사용하는 -
기호를 찍어낼 수 있습니다.이 방법을 사용하면 맨 페이지를 검색하고 검색한 강조 위치 항목으로 이동합니다:
--deep (-D)
When used in conjunction with --update, this flag forces emerge to consider the entire
dependency tree of packages, instead of checking only the immediate dependencies of
the packages. As an example, this catches updates in libraries that are not directly
listed in the dependencies of a package.
절묘하게 검색 결과가 들어맞았고, 이 결과에 대해 계속 검색해보려면 그냥 /키를 한번 더 누르고, Enter를 누르십시오(예: 패턴은 입력하지 마십시오). 마지막에 사용한 패턴을 기본으로 사용하여 검색합니다. 이제 몇가지 맨 페이지에서 옵션이 나타나고 설명이 보입니다. man 5 portage
맨 페이지를 띄우십시오. 사용하는 파일을 나열하고 사용법을 설명합니다. 몇번 앞으로 검색하다보면 같은 결과가 나타나겠지만, 두번째 뒤로 검색하는 검색 방식으로 다루는 쉬운 방법이 있습니다. package.unmask를 설명하는 내용을 찾는데 이 방법을 사용해보도록 하겠습니다. 먼저 man 5 portage
를 띄우십시오:
user $
man 5 portage
이제 Shift + g를 누르십시오. 페이지 마지막 부분으로 이동합니다:
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
lines 418-442/442 (END)
이제 다시 가서 ?pattern
뒤로 검색 옵션을 사용하여 검색할 패턴을 입력하도록 하겠습니다. 먼저 ?키를 눌러 프롬프트로 이동하고 요청으로 package.unmask
를 입력하십시오:
SEE ALSO
emerge(1), ebuild(1), ebuild(5), make.conf(5)
Portage 2.0.51 Jan 2004 PORTAGE(5)
?package.unmask
결과를 보려면 Enter를 치십시오:
package.unmask
Just like package.mask above, except here you list packages you want to unmask.
Useful for overriding the global package.mask file (see below). Note that
this does not override packages that are masked via KEYWORDS.
...
이렇게 하여 검색이 끝났습니다! 참고로 /
를 사용하는 것처럼 패턴을 입력하지 않고 ?
를 사용하면 검색한 단어의 바로 이전 결과를 검색합니다.
마무리
여기가 맨 안내서의 끝입니다. 맨 페이지 탐색 방법을 밝혀주었길 바라며, 좀 더 경험있는 사용자에겐 몇가지 새로운 요령을 전달했길 바랍니다. 맨 페이지를 탐색하는데 있어 적당한 대안 수단을 찾는 분들을 위해, 다음 요소를 마련했습니다:
- app-text/man2html - 맨 페이지를 HTML 페이지로 변환하는 프로그램
- app-text/tkman - TK 기반 맨 페이지 브라우저
KDE
의 Konqueror
웹 브라우저에서도 마찬가지로 주소 표시줄에서 man:
문법을 사용하여 맨 페이지를 탐색할 수 있습니다.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Chris White
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.