Man page/Navigate

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Man page/Navigate and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

이 안내서는 man 을 사용하여 맨페이지를 탐색하는 방법을 보여줍니다.

도입부

man 프로그램

누구나 몇번 쯤은 리눅스를 사용하면서 그걸 사용해본 경험이 있을 것입니다. "그것"은 바로 man 명령입니다. 그러나 man 프로그램 자체는 자체 생성의 단순화를 하기 보단, 페이지를 스크롤 하는 이상의 몇가지 추가 기능을 보유하고 있을 뿐입니다. 이 문서가 이 기능이 눈에 좀더 잘 들어오도록 도움이 되길바랍니다.

man 배치

맨페이지는 주소 /usr/share/man 디렉터리에 저장되어 있습니다. 그러나 맨페이지의 위치를 MANPATH 환경 변수에 명시한 대로, man 프로그램이 맨페이지를 가져올 수 있습니다. 젠투는 보통 /etc/env.dMANPATH 변수에 저장합니다. 이 디렉터리에 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 upPage down를 사용하여 페이지 단위로 이동할 수 있습니다. 그러나 이 탐색 방식은 기본 페이저 lessPAGER 환경 변수에 설정했을 때를 가정합니다. less는 탐색에 필요한 명령을 단순화 했지만, 보통 화살표 키만으로 충분합니다.

Codeless 탐색용 추가 키

'"`UNIQ--pre-00000006-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

그러나 검색하는 것은 흥미롭습니다. 두가지 기본 검색방식이 있는데 하나는 /pattern이고, 나머지 하나는 ?pattern 입니다. 첫번째는 앞으로 검색하고, 두번째는 뒤로 검색합니다. patternman 7 regex에 설명한대로의 정규표현식입니다. emerge를 실행하는데 활용하는 -D옵션 검색을 예로 들어보겠습니다. 먼저 emerge 맨 페이지를 띄우십시오:

user $man emerge

이 명령을 실행하고 나서 화면에서 / 키를 눌러 화면 다음 단어를 검색하기 위해 항목 프롬프트를 띄우고 검색 패턴을 입력해보십시오:

Code다음 검색 프롬프트 띄우기

'"`UNIQ--pre-00000009-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

참고
\ 문자로 보통 정규표현식에서 사용하는 -기호를 찍어낼 수 있습니다.

이 방법을 사용하면 맨 페이지를 검색하고 검색한 강조 위치 항목으로 이동합니다:

Code전방 검색 결과

'"`UNIQ--pre-0000000C-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

절묘하게 검색 결과가 들어맞았고, 이 결과에 대해 계속 검색해보려면 그냥 /키를 한번 더 누르고, Enter를 누르십시오(예: 패턴은 입력하지 마십시오). 마지막에 사용한 패턴을 기본으로 사용하여 검색합니다. 이제 몇가지 맨 페이지에서 옵션이 나타나고 설명이 보입니다. man 5 portage 맨 페이지를 띄우십시오. 사용하는 파일을 나열하고 사용법을 설명합니다. 몇번 앞으로 검색하다보면 같은 결과가 나타나겠지만, 두번째 뒤로 검색하는 검색 방식으로 다루는 쉬운 방법이 있습니다. package.unmask를 설명하는 내용을 찾는데 이 방법을 사용해보도록 하겠습니다. 먼저 man 5 portage를 띄우십시오:

user $man 5 portage

이제 Shift + g를 누르십시오. 페이지 마지막 부분으로 이동합니다:

CodeSHIFT+g키를 누른 후의 페이지 마지막 부분

'"`UNIQ--pre-0000000F-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

이제 다시 가서 ?pattern 뒤로 검색 옵션을 사용하여 검색할 패턴을 입력하도록 하겠습니다. 먼저 ?키를 눌러 프롬프트로 이동하고 요청으로 package.unmask를 입력하십시오:

Code검색 단어 지정

'"`UNIQ--pre-00000012-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

결과를 보려면 Enter를 치십시오:

Code검색 결과

'"`UNIQ--pre-00000015-QINU`"'

This is a deprecated template and will be removed soon!!! Help us update this template!

이렇게 하여 검색이 끝났습니다! 참고로 /를 사용하는 것처럼 패턴을 입력하지 않고 ?를 사용하면 검색한 단어의 바로 이전 결과를 검색합니다.

마무리

여기가 맨 안내서의 끝입니다. 맨 페이지 탐색 방법을 밝혀주었길 바라며, 좀 더 경험있는 사용자에겐 몇가지 새로운 요령을 전달했길 바랍니다. 맨 페이지를 탐색하는데 있어 적당한 대안 수단을 찾는 분들을 위해, 다음 요소를 마련했습니다:

KDEKonqueror 웹 브라우저에서도 마찬가지로 주소 표시줄에서 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.