Info
이 안내서에서는 info 명령을 사용하여 info 페이지를 둘러보는 방법을 보여드리려 합니다.
도입부
info란 무엇인가요?
아마 대부분 man
문서 시스템에 익숙할 것입니다. man 에서는 항목을 빨리 찾아보는데 좋지만 맨 페이지를 서로 연결하는 구조는 빠져있습니다. 그래서 info
가 도입됐습니다. info 페이지는 texinfo
도구를 사용하여 만들었으며, 다른 페이지로 연결할 수 있고, 메뉴를 만들 수 있으며, 일반적으로 탐색이 용이해졌습니다. 다음 장에서는 어떻게 info 페이지를 배치하는지 보도록 하겠습니다.
info 페이지 배치
주로 info 페이지는 /usr/share/info에 있습니다. man 디렉터리 배치 방식과는 달리 /usr/share/info에는 압축을 풀어낼 수 있는 내용이 있습니다. 이 파일은 다음 형식을 지니고 있습니다:
pagename.info[-node].gz
pagename
은 페이지의 실제 이름입니다(예: wget
). [-node]
는 다른 노드 레벨을 설계하는 추가 생성자입니다(보통 질문에 대해 info 문서의 최상단 레벨을 참조합니다). 디스크 공간을 절약하려는 목적으로 info 페이지를 gzip
압축 형식으로 압축합니다. 추가 info 페이지는 INFOPATH
환경 변수로 조회 할 수 있습니다(보통 /etc/env.d의 다양한 파일을 통해 설정합니다). 시작한다면 /usr/share/info/dir 파일을 참고하는 것이 중요합니다. 이 특별한 파일은 매개 변수 없이 info를 실행할 때 사용합니다. 사용자가 탐색할 수 있는 모든 info 페이지 목록이 들어있습니다. info에서 이리저리 탐색하기 위해, 인자를 사용하지 않고 바로 실행해서 가져오도록 해보겠습니다:
user $
info
이제 다음 장에서 기본 info 탐색에 대해 알아보겠습니다.
info 페이지 다루기
메뉴 탐색
이제 info를 시작하면 다음과 같은 화면을 보게 됩니다:
File: dir, Node: Top This is the top of the INFO tree This (the Directory node) gives a menu of major topics. Typing "q" exits, "?" lists all Info commands, "d" returns here, "h" gives a primer for first-timers, "mEmacs<Return>" visits the Emacs manual, etc. In Emacs, you can click mouse button 2 on a menu item or cross reference to select it. * Menu: User Interface Toolkit * GDK: (gdk). The General Drawing Kit * GTK: (gtk). The GIMP Toolkit GNU programming tools * Autoconf v2.1: (autoconf). Create source code configuration scripts.
바로 지금 앞에 별표 문자가 붙은 수많은 항목을 보고 있습니다. 다른 노드 레벨에서 탐색할 메뉴 항목입니다. 메뉴를 선택하는데는 두가지 방법이 있습닌다. 먼저번의 방법은 지금 보고 다른 방법은 나중에 보도록 하겠습니다. 먼저 wget
info 페이지로 이동하겠습니다. 아래로 이동하려면 wget 줄에 도달할 때까지 아래 화살표 키를 사용하십시오:
Network Applications * GnuTLS: (gnutls). Package for Transport Layer Security. * Wget: (wget). The non-interactive network downloader. * certtool: (gnutls)Invoking certtool. Manipulate certificates and keys. * gnutls-cli: (gnutls)Invoking gnutls-cli. GNU TLS test client. * gnutls-cli-debug: (gnutls)Invoking gnutls-cli-debug. GNU TLS debug client. * gnutls-serv: (gnutls)Invoking gnutls-serv. GNU TLS test server. * srptool: (gnutls)Invoking srptool. Simple SRP password tool.
해당 줄로 이동하고 나서 메뉴 항목을 선택하려면 Enter키를 치십시오. wget
에 대한 info 페이지를 가져옵니다:
File: wget.info, Node: Top, Next: Overview, Up: (dir) Wget 1.10.2 *********** This manual documents version 1.10.2 of GNU Wget, the freely available utility for network downloads. Copyright (C) 1996-2005 Free Software Foundation, Inc. * Menu: * Overview:: Features of Wget. * Invoking:: Wget command-line arguments. * Recursive Download:: Downloading interlinked pages. * Following Links:: The available methods of chasing links. * Time-Stamping:: Mirroring according to time-stamps. * Startup File:: Wget's initialization file.
이제 info 페이지를 띄우겠습니다. 다음장에서 기본 탐색 방법을 살펴보겠습니다.
기본 탐색 방법
노드 용어 중에 wget 페이지의 Top
노드를 고려합니다. Top
노드는 각 일부 info 페이지에 대한 목차와 같다는 점을 고려하십시오. 이제 실제 페이지 자체를 탐색하면 몇가지 다른 방식의 진행을 볼 수 있습니다. 먼저 방법은 표준 info 방식입니다. 이 방식은 다음 페이지를 이동할때 Space키를 사용하며 이전 페이지를 이동하려면 Backspace/Delete 키를 사용합니다. 이 방식은 문서상에서 적당한 노드로 자동으로 앞으로 이동하거나 뒤로 이동하는 방식이므로 추천합니다. 이 방식을 통해 맨페이지에서 사용한 선형 탐색 같은 탐색 동작이 가능합니다. 다른 방법은 Page up/Page down 키를 통한 방법입니다. 동작은 하는데 Space/Backspace/Delete 키를 조작하는 것처럼 동작하지는 않습니다. Space/Backspace/Delete를 사용하여 전체 노드를 건너뛰려면 [ (완전히 뒤로)키와 ](완전히 앞으로)키를 사용할 수 있습니다.
앞에서 말했던 바와 같이 메뉴 탐색에는 두가지 방식이 있습니다. 다른 방법은 이제 여기서 설명할 것입니다. 1-9
숫자키를 문서상의 첫번째~아홉번째 메뉴 항목을 참조하는데 사용할 수 있습니다. 이 동작은 문서를 빨리 충분히 읽을때 사용합니다. 예를 들어 Recursive Download
메뉴 항목으로 이동하는데 3키를 사용해보겠습니다. 3 키를 누르면 Recursive Download
화면을 띄웁니다:
File: wget.info, Node: Recursive Download, Next: Following Links, Prev: Invoking, Up: Top 3 Recursive Download ******************** GNU Wget is capable of traversing parts of the Web (or a single HTTP or FTP server), following links and directory structure. We refer to this as to "recursive retrieval", or "recursion".
이제 Recursive Download
화면을 띄운 상태입니다. 이제 몇가지를 알아둘 적절한 때가 왔습니다. 최상단 헤더 섹션이 첫번째입니다. 여기 헤더는 일부 화면에서 탐색할 수 있는 항목을 보여줍니다. Next:
로 나타난 페이지는 n 키를 누르면 접근할 수 있고, Prev:
로 나타난 페이지는 p 키를 누르면 접근할 수 있습니다. 참고로 이 방법은 동일한 레벨에서만 동작합니다. 과도하게 사용하면 전혀 관련 없는 내용으로 이동할 수 있습니다. 연속된 방식으로 탐색하는 Space/Backspace/Delete/[/] 키 사용 방식이 더 좋습니다.
어떤 이유로 인해 탐색 대상을 잃었다면, 해당 상황에서 빠져나올 수 있는 몇가지 방법이 있습니다. 첫번째는 t 키의 사용입니다. 탐색중인 info 페이지 일부에 대해 최상단(목차)로 바로 이동하게 합니다. 보던 마지막 페이지로 되돌아가려면 l 키를 사용할 수 있습니다. 상위 레벨로 이동하려면 u 키로 이동할 수 있습니다. 페이지를 탐색하는 몇가지 방법을 알아냈고, 이제 다음 장에서 컨텐트를 검색하는 방법을 살펴보겠습니다.
info 에서 검색하기
다른 info 페이지 탐색
이제 여러분은 각각의 info 페이지를 탐색할 수 있게 되었습니다. 다른 info 페이지를 접근하는데 있어 이 내용을 살펴보는것은 중요합니다. 첫번째 확실한 방법은 info 페이지의 dir
색인 목록을 통한 info 페이지 이동입니다. 깊숙한 문서 내에서 dir
핵인을 가져오려면 간단하게 d 키를 누르십시오. 그러면 원하는 적당한 페이지를 찾을 수 있습니다. 허나, 실제 페이지를 알고 있다면 goto node(g 키)
명령을통한 더 쉬운 방법이 있습니다. info 페이지를 이름을 사용하여 이동하려면, g 키를 입력하고 프롬프트를 띄운 다음 괄호 안의 페이지 이름을 입력하십시오:
* Startup File:: Wget's initialization file. * Examples:: Examples of usage. * Various:: The stuff that doesn't fit anywhere else. * Appendices:: Some useful references. * Copying:: You may give out copies of Wget and of this manual. --zz-Info: (wget.info.gz)Top, 24 lines --Top------------------------------- Goto node: (libc)
이 동작은 아래와 같이 libc 페이지를 띄울 것입니다:
File: libc.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Main Menu ********* This is Edition 0.10, last updated 2001-07-06, of `The GNU C Library Reference Manual', for Version 2.3.x of the GNU C Library. * Menu: * Introduction:: Purpose of the GNU C Library.
이제 이름을 사용하여 info 페이지를 이동하는 방법을 알았습니다. 다음장에서 info 페이지 색인을 사용하여 정보 일부를 검색하는 방법을 살펴보도록 하겠습니다.
색인을 사용한 검색
이 예제를 통해 libc
info 페이지 색인을 사용하여 C 라이브러리의 printf
함수를 어떻게 찾는지 살펴보도록 하겠습니다. 지금 아마도 여전히 libc info 페이지의 마지막 장에 있을텐데, 그렇지 않다면 마지막 장에 머무르기 위해 goto node 명령을 사용하십시오. 색인 검색을 활용하려면 i 키로 프롬프트를 띄우고 검색 단어를 입력하십시오. 아래에서 printf
를 검색해보겠습니다:
* Character Set Handling:: Support for extended character sets. * Locales:: The country and language can affect the behavior of library functions. * Message Translation:: How to make the program speak the user's language. --zz-Info: (libc.info.gz)Top, 1291 lines --Top-- Subfile: libc.info-1.gz----- Index entry: printf
검색 요청 입력을 완료하고 엔터키를 누르면 printf
에 대한 libc
정의로 이동합니다:
File: libc.info, Node: Formatted Output Functions, Next: Dynamic Output, Prev: Other Output Conversions, Up: Formatted Output 12.12.7 Formatted Output Functions
This section describes how to call `printf' and related functions. Prototypes for these functions are in the header file `stdio.h'. Because these functions take a variable number of arguments, you _must_ declare prototypes for them before using them. Of course, the easiest way to make sure you have all the right prototypes is to just include
이제 libc
info 페이지 색인을 활용하여 검색을 제대로 해보았습니다. 그러나, 가끔 원하는 바는 페이지 자체에 있는 내용을 찾아보는 것입니다. 다음 장에서는 페이지 자체에서 검색을 수행하는 방법을 살펴보겠습니다.
검색 명령을 사용한 검색
Formatted Output Functions
노드 위치의 이전 위치에서 시작하여, printf
의 변형 sprintf
변형을 찾아보겠습니다. 검색을 수행하려면 s 키를 눌러 검색 프롬프트를 띄우고, 검색 요청 단어를 입력하십시오(이 경우 sprintf 입니다):
-- Function: int wprintf (const wchar_t *TEMPLATE, ...) The `wprintf' function prints the optional arguments under the control of the wide template string TEMPLATE to the stream `stdout'. It returns the number of wide characters printed, or a --zz-Info: (libc.info.gz)Formatted Output Functions, 127 lines --Top-- Subfile: libc.info-3.gz-- Search for string []: sprintf
Enter 키를 치면 검색 요청의 결과를 보여줍니다:
-- Function: int sprintf (char *S, const char *TEMPLATE, ...) This is like `printf', except that the output is stored in the character array S instead of written to a stream. A null character is written to mark the end of the string. The `sprintf' function returns the number of characters stored in the array S, not including the terminating null character.
이제 우리가 원하는 함수를 찾았습니다.
결론
결론적으로 info 페이지를 살펴보기 위한 info의 쓰임새를 전반적으로 살펴보았습니다. 언제나 토를 달아주는것을 환영하며 겸허히 받겠습니다.
추가 프로그램 자료
좀더 친숙한 그래픽 인터페이스를 통해 info 페이지를 탐색하려는 쉬운 방법을 갖추는데 다음 수단이 있습니다:
- app-text/info2html - info 페이지를 탐색이 용이한 HTML 형식으로 변환
- app-text/pinfo -
ncurses
기반 info 보기 프로그램 - app-text/tkinfo -
tcl/tk
기반 info 브라우저 - app-vim/info -
vim
기반 info 브라우저
KDE
의 브라우저 Konqueror
에서 info:
URI를 사용하면 info 페이지를 탐색할 수 있습니다.
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.