· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Info_Search-KLDP

Linux Documents Guide

Linux Documents Guide

시작하는 이들을 위한 리눅스 문서 활용 가이드

윤봉환, el@kldp.org

v0.4, 02 Oct 2000, on vi
리눅스 박스에 준비된 문서를 활용하는 다양한 팁과 네트워크를 통해 리눅스 정보를 구하는 방법들을 소개합니다. 앞서 시작한 리눅서들로부터 도움을 얻는 방법, 그리고 다음에 시작하는 다른 리눅서를 위해 여러분이 할 수 있는 일을 생각해봅니다. 이 글은 리눅스월드(http://www.linuxlab.co.kr) 99년 6월호에 실렸던 기사를 바탕으로 다시 쓰여진 것입니다. 필요하다면 이 글을 가져다 쓸 수 있지만 electuz에게 알려 주시기 바랍니다.

1. Linux Documentation

초보자를 위한 글들은(이 글을 포함해서) 유저그룹, 뉴스그룹에 질문하는 대부분의 문제에 대한 해답은 리눅스 문서에서 찾을 수 있다고 말합니다. 그에 더해 매뉴얼이나 FAQ를 살펴보지 않고 뻔한 질문을 네트워크에 올렸다면 RTFM (Read The Fine Manual | Read The Fucking Manual) 이나 'FAQ에서 찾아보세요' 라는 차가운(^^) 대답을 듣게 된다고 경고하기도 합니다.

하지만 실제로 RTFM을 만날 기회는 그리 많지 않습니다. 더 많은 이들이 행복한 리눅서가 되길 바라는 리눅스의 정신처럼 대부분 리눅서들이 도움 주기를 좋아하기 때문입니다. 질문 자체를 탓하는 이는 아무도 없으니 질문하기조차 두려워 할 필요는 없습니다. 다만 문제가 생겼다면 먼저 개발자가 제공하는 매뉴얼, FAQ, HOWTO 등 리눅스 박스 안에 준비된 문서를 충분히 살펴보는 습관을 들여야합니다. 여러분 박스 안에서 찾을 수 없거나 의미가 모호한 경우에, 필요하다면 자세히 물어 도움을 구합니다. (진정한 리눅서가 되고 싶다면!)

모든 리눅서들은 개척정신을 가졌다고 생각합니다. 눈에 익은 M$ Windog와 다르게 무언가 복잡해 보이고 조금은 두렵기도 한 리눅스 세계에 발을 들여놓았으니 그렇습니다. 그런 처음의 설렘을 계속 잊지 않고 멋진 리눅서가 되기를 바랍니다.

2. 리눅스 박스 안에서 찾기

리눅스 박스 안에는 정말 많은 문서들이 있습니다. 무엇부터 보아야 할 지 몰라 차라리 모든 문서를 다 섭렵하겠다고 욕심내기도 하지만 처음부터 그럴 필요는 없습니다. 리눅스에는 정말 많은 분야가 있고, 그 모든 것을 막연히 좇아 다니는 태도는 여러분의 발전을 더디게 합니다. 차근차근 하나씩 이루어 가세요. 리눅스를 공부하며 더 관심 있는 주제가 생기면 필요한 문서들이 점점 눈에 띌 것이고, 실제로 모든 것을 완벽하게 알 필요는 없지요. 여러분이 우러러 보는 구루들도 대부분 전문 분야를 가진 이들이지요.

2.1 MAN은 그 남자가 아니다.

man [optionS] [Section] command(S)i

맨 페이지는 명령, 옵션에 대한 설명, 관련된 주제를 담고 있는 온라인 도움말(MANual page)입니다. /usr/bin/man 명령은 /usr/man/ 디렉토리 아래 준비된 맨 페이지를 검색하여 화면에 표시하는 유틸리티입니다. 사용법은 매우 간단하지만 때로 황홀한 도움을 얻기도 합니다. 새로운 명령이나 기능, 옵션을 만났다면 언제나 맨 페이지를 요청해 봅니다. 항상 리눅서를 도울 준비가 되어 있는 훌륭한 비서를 만나게 될 것입니다.

하지만 맨 페이지가 만능은 아닙니다. 맨 페이지는 명령이나 설정파일 등에 대한 일반적인 설명이므로 더 실제적인 예가 필요하다면 <@@ref>sect-howtoHOWTO 문서(2.3. 설명되어 있습니다)나 info 명령, 또는 BBS, 뉴스그룹 등의 기사를 참고합니다.

일반적으로 man 명령은 'man ls' 처럼 한 가지 주제에 대한 맨 페이지를 요청하지만 필요하다면 한 번에 여러 가지 주제의 문서를 요구할 수도 있습니다. 아래 예는 리눅서가 사용하는 vi 등 몇 가지 에디터에 대한 맨 페이지를 이어서 보여 줄 것입니다:

$ man vi emacs ed pico

man 명령은 맨 페이지를 검색하여, 압축된 문서를 연 다음, less 유틸리티를 이용해 화면에 출력합니다. less 유틸리티는 more 유틸리티처럼 긴 글을 화면 크기에 맞게 잘라서 표시합니다. 둘의 기능은 비슷하지만 less가 더 나은 기능들을 가지고 있습니다. 흔히 텍스트 뷰어로도 사용하는 vi보다는 훨씬 빠릅니다. 또 more, vi 기반의 다양한 명령을 내장하고 있어 문서 안에서 검색이나 이동 등이 쉽습니다. 앞으로 소개될 문서들은 대부분 less 유틸리티로 살펴보게 될 것입니다.

less

때로 프로그램 개발자들이 대체 무슨 생각으로 유틸리티마다 그리 많은 옵션과 기능들을 넣어 두었는지 궁금할 때도 있습니다. less도 다르지 않아 매우 다양한 기능이 있지만 몇 가지 기본적인 기능들을 살펴봅니다. 물론 여기 소개된 것으로 충분하지 않을 때도 있을 것입니다.

도움말

<h>키는 도움말을 출력합니다. 도움말 역시 아래에 설명한 명령 키들로 제어합니다.

스크롤

방향키, 엔터 키는 한 줄씩 스크롤하고 스페이스바, <f>, <PgDn>, <b>, <PgUp>키는 페이지 단위로 스크롤합니다. <d>(down) <u>(up) 명령은 '10d' 처럼 숫자와 조합하여 스크롤되는 줄 수를 지정할 수 있습니다. <g>는 맨 처음, <G>는 맨 끝으로 옮겨갑니다.

검색

특정 단어를 검색하려면 </> 또는 <?> 키를 누르고 검색할 주제를 입력합니다. 검색된 다음 포인트로 이동하려면 <n> 키를, 이전 검색 포인트는 <N> 키를 눌러 이동합니다. 유닉스 계열의 운영체제는 m$의 것들과 다르게 대소문자를 구분하므로 항상 주의합니다. </> 명령은 앞부터, <?> 명령은 뒤쪽부터 검색을 시작합니다.

책갈피

북마크를 설정하면 매우 빠르게 문서를 스크롤할 수 있습니다. <m>키를 누르고 북마크로 사용할 영문 소문자 한 글자를 입력하면 현재 위치가 북마크로 설정됩니다. 북마크로 이동할 때엔 <'> 키를 누르고 북마크 문자를 입력합니다.

마침

끝낼 때에는 <q> 명령, 끝내고 연결된 편집기로 문서를 편집하려면 <v> 키를 누릅니다. 그 밖의 명령들은 맨 페이지 또는 도움말 화면을 살펴봅니다: $ man less

whatis database

 whatis command
 apropos command

/usr/man/whatis 파일에는 각 메뉴얼 페이지와 섹션에 대한 짤막한 설명이 있습니다.

/usr/man/ 디렉토리 아래 이 파일이 없다면 /usr/sbin/makewhatis 명령으로 데이터베이스를 생성합니다.(makewhatis 명령은 시스템 관리자(root) 권한으로만 실행할 수 있습니다) 예문 맨 앞에 쓰인 '#' 문자는 루트로 로그인 했음을 뜻합니다:

# /usr/sbin/makewhatis

whatis 데이터베이스를 검색하려면 whatis나 apropos 명령을 사용합니다. (whatis나 apropos는 /usr/bin 디렉토리 아래 쉘 스크립트 명령입니다) whatis 명령은 매개 변수로 주어진 주제를 표제어에서만 검색하지만 apropos 명령은 whatis 데이터 베이스 표제어와 설명 전체에서 검색합니다. 아래 예문처럼 두 명령을 비교해 보면 알 수 있습니다.

$ whatis man $ apropos man

apropos는 검색어가 포함된 모든 줄을 출력하므로 검색어를 잘 정하지 않으면 매우 장황한 결과를 보게 될 것입니다. 너무 많은 맨 페이지가 검색되었다면 apropos 검색 결과를 grep 유틸리티로 필터링합니다.

아래 예는 man 이란 낱말이 검색된 항목 가운데 완전한 단어로 man을 포함한 줄만 보여줄 것입니다. (grep은 2.3.4.에 설명되어 있습니다):

$ apropos man | grep -w man

man 명령의 옵션을 이용하여 검색할 수도 있습니다. 아래 man -f, man -k 명령은 whatis, apropos 명령과 같은 결과를 얻을 것입니다:

$ man -f filter $ man -k filter

watis, apropos 스크립트는 grep 유틸리티의 -i 옵션을 사용하므로 키워드로 주어진 명령의 대소문자를 구분하지 않고 검색을 수행합니다.

MAN page Sections

매뉴얼 페이지는 원래 여덟 권으로 이루어진 유닉스 문서의 온라인 버전입니다. 그 형식을 이어 리눅스 맨 페이지도 /usr/man 디렉토리 아래 섹션에 따라 분류되어 있습니다. (리눅스 맨 페이지는 아홉번째 섹션을 추가했습니다.)

-----------------------------------------------------------------
 섹션   특 성
-----------------------------------------------------------------
  1     사용자가 일반적으로 실행할 수 있는 명령 (Commands)

  2     커늘에 의해 실행되는 시스템 콜 (System calls)

  3     C 라이브러리 함수 (Library calls)

  4     /dev 아래 장치 파일들(Special files)

  5     /etc/passwd, /etc/fstab 등 파일 형식, 규칙
        (file formats and conventions)

  6     리눅스 게임 (games)

  7     표준 파일시스템 설계, man 페이지 등 설명
        (macro package and conventions)

  8     lilo, mount처럼 root가 수행하는 시스템 관리 명령
        (System management commands)

  9     비표준 커늘 루틴 (Kernel routines)
-----------------------------------------------------------------

맨 페이지는 한 가지 주제가 여러 섹션에 설명될 수 있는데 man 명령을 특별한 옵션 없이 사용하면 검색된 첫 번째 섹션만 보여줍니다. 예를 들어 여러분에게 필요한 것은 /etc/passwd 파일에 대한 맨 페이지이지만 'man passwd' 명령은 섹션 1에 있는 passwd 명령만 보여줍니다. /etc/passwd 파일대 대한 맨 페이지는 'man 5 passwd' 명령을 사용합니다.

man 명령에 섹션 번호를 명시하면 지정한 섹션 하나만 출력하지만 -a 옵션을 이용하면 연관된 모든 섹션을 볼 수 있습니다. -a 옵션은 매우 좋은 버릇입니다.

$ man 4 man $ man -a man

/etc/man.config

맨 명령의 환경을 설정하는 파일입니다. 맨 페이지 경로와 포매터, 페이저, 해독기 등 유틸리티가 설정되어 있습니다. 아래는 설정파일에서 매뉴얼 페이지 경로와 페이저설정 부분을 발췌한 것입니다.

-----------------------------------/etc/man.config
 # less /etc/man.config
 # man.conf
 MANPATH /usr/man
 MANPATH /usr/local/man
 MANPATH /usr/X11R6/man
 MANPATH /usr/lib/perl5/man
 ... 생략
 
 PAGER                    /usr/bin/less -is
 CAT                     /bin/cat
 ... 생략
-------------------------------------------------

기본 페이저 less 유틸리티의 실행 옵션으로 쓰인 -i 는 검색할 때 대소문자를 구분하지 않도록 설정하고, -s 는 빈 줄이 여러 줄 계속되면 한 줄로 줄여서 보여주도록 설정합니다.

local 맨페이지

/usr/man/manl 디렉토리 아래에는 지역적으로 제공되는 맨 페이지가 있습니다. 일반적으로 비표준 패키지라 부르는 프로그램들을 설치하면 이 곳에 자신의 매뉴얼 페이지를 풀어놓습니다. 또는 웹사이트 등에서 구한 맨 페이지를 설치할 수도 있습니다.

로컬 맨페이지에 넣을 매뉴얼은 일반 텍스트 파일도 가능하므로 자신만의 맨 페이지를 만들어 넣을 수 있습니다. 파일 이름을 'lihaa.l' 처럼 꼬리에 'l' 자를 붙여 /usr/man/manl 디렉토리에 저장하면 'man lihaa' 등 명령으로 읽을 수 있습니다. 조금 더 멋지게 하고 싶다면 nroff 포맷으로 만듭니다.

아래 명령으로 맨 페이지 포맷에 대한 도움말을 볼 수 있습니다:

$ man 7 man

man 페이지 프린트하기

맨 페이지에는 백스페이스나 밑줄 등 특수문자들이 포함되어 있어 진한 글씨로 표시하는 등 화면을 보기 좋게 꾸미는 역할을 합니다. 그러나 이런 문자열은 프린터로 출력하거나 텍스트 파일로 저장할 경우 이상한 문자열로 변합니다. man 명령에 대한 맨 페이지 끝에는 이들 특수 문자를 벗겨 내고 일반 텍스트 파일로 저장하는 방법이 들어 있습니다.

예를 들어 grep 명령의 맨 페이지를 보통 텍스트 파일로 저장한다면 다음 명령을 사용합니다.

$ man grep | col -b > grep.txt

xman

xman은 X window에서 실행되는 맨 페이지 브라우저입니다. 팝업 메뉴나 터미널 창에서 'xman&' 명령을 실행하면 버튼 세 개가 있는 작은 윈도우가 나타난다. Manual Page 버튼을 누르면 브라우저 창이 새로 생긴다.

Sections 메뉴에서 필요한 섹션을 고르면 목록 나타난다. 목록에서 명령을 클릭하면 맨 페이지가 표시됩니다. 목록과 맨 페이지는 <ctrl>+<m>, <ctrl>+<d>로 전환하거나 Options 메뉴에서 Show Both Screens를 선택해 함께 봅니다.(그림 1) 분리선 오른쪽 끝에 있는 조절 버튼으로 창 크기 비를 조절할 수도 있습니다.

Options/Search 메뉴나 단축키 <ctrl>+<s>를 눌러 주제를 검색할 수 있습니다.(그림 2) Apropos를 선택하면 맨 페이지 창에 검색된 페이지 목록이 표시됩니다.(그림 1) <ctrl>+<n>명령으로 새 브라우저 창을 만들어 관련된 여러 페이지를 함께 살펴 볼 수도 있습니다.

2.2 gnome-help-browser

gnome-help-browser는 그놈(gnome) 문서, 맨 페이지, info 페이지 등 도움이 되는 문서와 인터넷을 통해 다른 컴퓨터의 문서도 브라우즈하는 프로그램입니다. man 명령보다 강력한 기능을 많이 가지고 있지만 X 윈도우에서만 실행되므로 콘솔에서는 이용할 수 없습니다.

URL 입력박스

URL 입력박스에 URL을 직접 입력할 수 있습니다. 도움말 브라우저는 다음과 같은 표준 방식과 매직 URL 형식을 지원합니다:

http: HTTP 프로토콜을 이용하여 문서에 접근합니다.

  • + http://www.gnome.org
  • + http://www.gnome.org/index.shtml
  • + http://www.gnome.org/index.shtml#majic

file: 로컬 파일시스템의 파일에 접근합니다.

  • + file:/home/msf/maji12.html
  • + file:/usr/man/man1/ls.1
  • + file:/usr/src/gogo/README

whatis: 주어진 문자열로 문서를 검색합니다.

  • + whatis:ls
  • + whatis:xman

toc: 가능한 문서들의 목차를 읽어옵니다.

  • + toc:
  • + toc:man
  • + toc:info
  • + toc:ghelp

man: 매뉴얼 페이지 읽어옵니다.

  • + man:ls
  • + man:ls(1)

info: 그누인포 페이지를 읽어옵니다.

  • + info:emacs
  • + info:emacs#Top

ghelp: 응용프로그램의 그놈 도움말을 읽어옵니다.

  • + ghelp:help-browser

2.3 HOWTO

/usr/doc/HOWTO, 그리고 /usr/doc/HOWTO/translation/ko 디렉토리 아래에 특별한 문제에 대해 도움을 얻을 수 있는 일반 텍스트 형식의 HOWTO 문서가 있습니다. 대체로 긴 문서들이므로 less유틸리티나 '한밤중 명령기'(mc)의 뷰어를 사용하여 살펴보는 것이 좋습니다. 하우투 문서에 제시된 옵션은 man 명령으로 자세히 확인하며 읽습니다.

아래 그림은 '한밤중 명령기' 왼쪽 창을 빠르게 보기로 설정한 것입니다. [F3] 키를 눌러 반전된 파일을 뷰어로 볼 수 있습니다. mc는 일반 텍스트 파일뿐만 아니라 tar, gz, rpm 파일도 다른 선행 작업 없이 볼 수 있습니다.

아래 명령으로 PPP를 이용해 다이얼업 네트워킹을 다루는 방법을 상세하게 다룬 하우투 문서를 볼 수 있을 것입니다:

$ cd /usr/doc/HOWTO/translation/ko $ less PPP-HOWTO

하우투 최신문서는 http://sunsite.unc.edu/LDP 에 공개됩니다. 한글로 번역된 LDP 문서는 http://kldp.org에서 구할 수 있습니다.

mini-HOWTO

HOWTO 디렉토리 아래 mini-HOWTO 문서들은 좀더 짧고 세부적인 주제를 다루는 자유로운 형식의 HOWTO입니다.

2.4 find

하우투 문서는 파일 이름이나 /usr/doc/HOWTO/HOWTO-INDEX에서 대강의 내용을 짐작할 수 있습니다. 하우투 문서 안에서도 관련된 다른 문서들을 소개하기도 합니다. 그런 고리를 통해 리눅서는 읽어야 할 목록에 연결됩니다.

제목이나 문서 안내로 짐작할 수 없는 조그만 정보라도 더 얻고 싶다면 find, grep 유틸리티로 특정 단어를 포함한 모든 파일을 검색할 수 있습니다. find와 grep 명령은 가장 많이 사용하는 명령입니다. 잘 알아두면 여러분의 리눅스 인생이 매우 쉬워질 것입니다. (이 글을 쓰는 동안에도 나는 find와 grep의 도움을 참 많이 얻고 있습니다.)

find 명령의 형식

/usr/bin/find 명령은 다음과 같이 사용합니다.

$ find [path...] [expression]

path(경로)는 find 명령으로 찾아볼 디렉토리의 시작위치입니다. 경로 깊이를 따로 지정하지 않았다면 기본적으로 시작위치와 그 하위 디렉토리 모두를 검색합니다. 이 곳에 루트 디렉토리(/)를 지정한다면 find 명령은 파일 시스템 전체를 검색합니다.

expression(표현식)은 옵션과 테스트, 행동(action)으로 구성됩니다.

옵션(option)은 테스트와 상관없이 항상 적용됩니다.

-maxdepth

0이 아닌 정수값으로 경로 깊이를 지정합니다. '-maxdepth 1'은 시작위치로 지정한 디렉토리만 검색하고 하위 디렉토리는 찾지 않습니다. -mindepth 옵션은 반대로 동작합니다. 지정한 숫자만큼의 깊이부터 그 하위 디렉토리를 검색합니다.

-xdev

검색을 시작한 파일시스템에서만 검색을 수행하도록 설정합니다. 하위 디렉토리에 링크된 파일시스템은 검색하지 않습니다.

아래는 find 명령에서 사용되는 테스트입니다. 테스트에 사용되는 인수에는 보다 큰 수를 의미하는 +, 보다 작은 수를 의미하는 - 연산자와 함께 사용할 수 있습니다. 인수에 아무 연산자도 붙지 않는다면 정확히 그 값을 의미합니다.

-----------------------------------------------------------------
 옵션           기능
-----------------------------------------------------------------
-atime N        n일 전에 액세스(access)된 파일을 찾습니다.

-mtime N        n일 전에 수정(modify)된 파일을 찾습니다.

-newer USR      file보다 늦게 수정된 파일을 찾습니다.

-size n         n*512 바이트 길이를 가지는 파일을 찾습니다.

-name WORD      파일 이름으로 검색합니다.  이름에는 메타 문자(*, ?, [])를 
                사용할 수 있습니다.

-perm MODE      퍼미션으로 검색합니다. (-perm +2000)

-type LETTER    파일형식으로 검색합니다.  f는 보통 파일, d는 디렉토리 
                파일을 의미합니다.

-user USR       사용자 이름이 usr인 파일을 찾습니다.

-nouser 파일 소유자 이름이 등록되어 있지 않은 파일을 찾습니다.

-nogrp          파일 소유 그룹 이름이 등록되어 있지 않은 파일을 찾습니다.
-----------------------------------------------------------------

행동(action) 옵션은 조건(test)과 일치하는 파일에 대해 수행할 작업을 설정합니다.

-----------------------------------------------------------------
 옵션           기능
-----------------------------------------------------------------
-exec CMD       명령(CMD)을 실행합니다.  명령행의 끝은 반드시 \; 로 
                닫아 주어야 합니다.  현재 찾은 파일이름의 배열을 {}로 
                입력으로 사용할 수 있습니다.  아래 명령은 확장자가 bak인 
                모든 파일을 찾아 삭제합니다.

                find ./ -name '*.bak' -exec rm -f {} \;

-ok CMD 명령을 실행하기 전에 사용자 입력을 기다립니다.

-print          표준출력(stdout)으로 출력합니다.  기본설정입니다.

-ptint0         -print와 같이 동작하지만 출력의 끝에 개행문자를 붙이지 
                않습니다.

-fprint FILE    -print와 같이 동작하면서 출력을 지정한 파일로 보냅니다.

-printf FORM    c 스타일의 포맷을 사용하여 출력합니다. 
                man 3 printf

-ls             ls -dils 형식으로 파일 정보를 자세히 출력합니다.

-fls            -ls 와 같이 동작하면서 출력을 지정한 파일로 보냅니다.
-----------------------------------------------------------------

find 명령의 활용

아래는 'patch -' 라는 문자열을 담고 있는 문서를 검색하여 파일 이름과 검색된 줄을 화면으로 출력하는 예입니다. find 명령을 둘러 싼 문자(`는 따옴표가 아닙니다)는 둘러싸인 명령의 수행 결과를 다른 명령의 인수로 돌려줍니다. 예에서는 HOWTO와 하위 디렉토리의 모든 파일을 grep 명령의 인수로 넘겨줄 것입니다:

$ grep 'patch -' `find /usr/doc/HOWTO/ -type f`

bash2가 사용중인 셸이라면 위 명령은 다음과 같이 달라집니다:

$ grep 'patch -' $(find /usr/doc/HOWTO/ -type f)

검색된 결과를 파일로 저장하고 less 유틸리티를 이용하여 살펴보는 것도 좋은 방법입니다. 아래에 예가 있습니다:

$ grep 'patch -' `find /usr/doc/HOWTO/ -type f` | tee patch.list $ less patch.list

파일이름으로 검색하려면 아래 예처럼 -name 을 사용합니다. 아래 명령은 파일이름 끝에 net이라는 문자열이 포함된 파일을 모두 프린터로 출력합니다:

$ find /usr/doc/HOWTO/ -name '*net' -exec lpr {} \;

2.5 grep

/bin/grep은 입력되는 정보에서 패턴을 포함한 줄을 걸러내는 유틸리티입니다. 시스템 관리를 위해 매우 다양하게 쓰이므로 find와 함께 잘 익혀 두어야 합니다.

grep [OPTION...] PATTERN [FILE]...

아래 표는 grep 명령에서 자주 쓰이는 옵션입니다.

-----------------------------------------------------------------
짧은이름        긴이름                  기능
-----------------------------------------------------------------
-h              --no-filename           파일 이름을 감춥니다.
-l              --files-with-matches    파일 목록만 나열합니다.
-n              --line-number           줄번호를 표시합니다.
-i              --ignore-case           대소문자 구분 없이 필터링을 수행합니다.
-w              --word-regexp           완전한 단어만 찾습니다.
-v              --revert-match          패턴을 포함하지 않은 문자열만 걸러냅니다.
-----------------------------------------------------------------

아래는 grep 명령의 간단한 형식입니다. 현재 디렉토리의 모든 파일에서 문자열 'bash'를 포함한 문서를 필터링합니다:

$ grep bash *

grep 유틸리티는 일반적으로 명령의 수행결과를 파이프(|)를 통해 입력받아 사용합니다. 예를 들어 ls 명령의 결과로 net 또는 Net 을 포함한 파일만 출력하고 싶다면 아래처럼 사용합니다.

$ ls /usr/doc/HOWTO | grep [Nn]et

2.6 info

info command

/usr/info 디렉토리 아래에는 하이퍼텍스트 형식으로 된 구체적인 설명이 있습니다. info 명령 또는 emacs를 사용하여 검색하거나 인쇄합니다.

$ info bash

<n>은 다음 노드, <p> 는 이전 노드, <u>는 상위 노드로 이동하는 명령입니다. 노드 이름을 직접 입력하려면 <m> 을 눌러 나타나는 입력창에 노드 이름 일부를 쓰고 <tab> 키를 누르면 됩니다. 스페이스바와 딜리트 키는 각각 한 화면씩 위, 아래로 스크롤합니다.

2.7 LDP & KLDP : Linux Document Project

리눅스 문서 프로젝트 팀, 그리고 개발자들에게 리눅스 풀그림의 개발이나 문서화에 특별한 책임이 있는 것은 아니다. 대부분 순수한 열정으로 풀그림 개발과 문서화에 참여합니다. LDP는 그런 다양한 노력들을 모아 효율적으로 문서화하기 위해 시작되었습니다.

LDP( http://sunsite.unc.edu )의 문서들은 일반적으로 개론서의 성격을 가지며 SGML, TeX, ps, HTML, plain TEXT 형태로 배포됩니다. 한글문서 프로젝트팀 홈페이지( http://kldp.org )에서 한글로 번역된 LDP문서들인 KLDP를 볼 수 있습니다. KLDP 홈페이지는 권순선님이 관리하며 LDP 문서들의 번역뿐만 아니라 리눅스 한글화와 관련된 문서들도 제작하여 배포하고 있습니다. 한글 배포판을 설치했다면 /usr/doc/HOWTO/taranslations/ko/docs 아래 KLDP 문서들이 있습니다.

IGSG  초보자를 위한 문서 Installation and Getting Started Guide
KHG    커늘 해킹을 위한 문서 The Linux Kernel Hackers' Guide
LNAG   리눅스 네트워크 관리자를 위한 문서 
         The Linux Network Administrators' Guide
LPG     리눅스 프로그래머 가이드 The Linux Programmer's Guide
LSAG   리눅스 시스템 관리자를 위한 문서 
        The Linux System Administrators' Guide
LUG    리눅스 사용자 가이드 The Linux Users' Guide
TLK    커늘 구조 설명서 The Linux Kernel
LKMPG  리눅스 커늘모듈 프로그래밍 가이드 
         Linux Kernel Module Programming Guide

2.8 whereis

whereis [option] filename(S)

실행파일의 위치와 함께 소스, 설정파일, 매뉴얼 페이지를 검색하여 보여줍니다. locate 명령보다 검색 속도가 느리고 검색범위가 제한되어 있지만 출력결과가 단순한 것이 장점이 될 때도 있습니다.

아래 예문은 ifconfig 명령의 위치와 다양한 리소스를 여러분에게 보고합니다:

# whereis fstab

2.9 locate

locate [OPTION]... PATTERN

locate 유틸리티는 파일과 디렉토리 목록을 데이터베이스(/var/lib/locatedb)로 만들어 검색을 수행하므로 수행속도가 매우 빠릅니다. 실행 파일과 메뉴얼 페이지, 리소스, 그리고 그 외 관련 문서들을 검색하여 보여줍니다.

아래 예는 문자열 'anterm'을 포함한 파일, 디렉토리를 검색하여 보여줍니다. 한텀과 관련된 파일음 Hanterm, 또는 hanterm 등 다른 이름을 가지고 있으므로 모두를 찾기 위해 앞 한 글자를 빼고 검색했습니다:

$ locate anterm

locatedb는 /usr/bin/updatedb 명령으로 업데이트합니다. updatedb 명령은 특별한 설정이 없다면 / 아래 마운트된 모든 디렉토리에서 자료를 수집하므로 데이터베이스를 갱신하기 위해 매우 오래 작업을 할 것입니다. 시스템 관리자에겐 매우 번거로운 일이므로 바쁜 시간을 피해 매일 새벽에 cron 데몬이 업데이트를 수행하도록 설정되어 있습니다. (/etc/cron.daily/updatedb.cron)

당장 업데이트를 수행하고 싶다면 대개 백그라운드로 작업할 것입니다. 명령 끝에 '&' 문자는 프로그림이나 명령을 백그라운드로 실행하도록 지시합니다:

# /usr/bin/updatedb &

locate 명령은 grep 유틸리티와 함께 사용하여 효율을 높일 수 있습니다.

locate 명령에서 가장 주의해야 할 것은 패턴의 선정입니다. locate 명령은 패턴을 포함한 모든 문자열을 검색하므로 키워드 선정에 따라 검색효율이 달라집니다. 예를 들어 키워드로 'sh'를 사용했다면 share, shadow, brush 등 관련 없는 정보들이 화면 가득 흐를 것입니다. grep 유틸리티로 관련이 적은 문자열을 필터링하기도 어려울 만큼 많을 수도 있습니다.

2.10 그 밖의 문서들

/usr/doc

/usr/doc 디렉토리 아래에는 풀그림을 제작한 프로그래머가 유의점이나 설치방법 등을 설명한 디렉토리가 있습니다.

이렇게 접근했습니다. GQview 팝업메뉴 Edit에서 Electric Eyes가 연결되어 있기에 GQview Help 메뉴를 열어 풀그림 이름이 ee라는 것을 알았습니다. 당연히 man -a ee 명령을 썼지만 그런 매뉴얼은 없다고 합니다. man -k ee, man -k eye, locate eye, locate ee 모두 엉뚱한 것들을 검색하여 보여줍니다. 어디서 찾을 수 있을까?

결국, /usr/doc/ee-3.0 디레토리 아래에서 작은 문서를 몇 개 발견하였습니다.

커늘문서

커늘과 관련된 문서들은 /usr/src/linux/Documentation, /usr/src/linux/driver 아래에 있습니다.

아래 명령으로 커늘 환경설정을 위한 스크립트(make menuconfig 따위)에서 제공하는 도움말 전체를 볼 수 있을 것입니다:

$ cd /usr/src/linux/Documentation $ less Configure.help

--------------------------------------------start of tip
유틸리티는 각각 고유의 기능을 가지는 작은 도구들로 리눅서의 창의성에 따라 매우 유연하게 활용할 수 있는 프로그램입니다.  유틸리티를 잘 활용하는 것은 리눅서가 반드시 갖추어야 할 덕목입니다.

아래아 한글처럼 어떤 특별한 작업을 위해 만들어진 풀그림은 일반적으로 어플리케이션이라 부르며 대개 다른 목적으로 사용할 수 없습니다.(유틸리티와 어플리케이션이 언제나 명확하게 구분되는 것은 아닙니다.)
-----------------------------------------------------

3. 네트워크에서 찾기

리눅스 박스에서 찾은 문서는 일반적으로 실제 활용 예를 다양하게 수록하지 않습니다. 좀더 다양한 활용 예를 찾아보려면 BBS, 뉴스그룹을 방문합니다.

3.1 BBS user group

BBS에는 대부분 비슷한 질문들로 가득 차 있지만 검색명령을 활용하여 잘 찾아보면 도움을 얻을 수 있습니다.

BBS나 뉴스그룹에서 좋은 해답을 듣고 싶다면 몇 가지 관습적인 규칙을 지키는 것이 좋습니다.

  • 질문을 올리기 전에 자신의 문제와 닮은 질문/답이 있었는지 살펴보아야 합니다. 아무도 같은 질문에 두 번 대답하고 싶지 않을 것입니다.
  • 아무리 급하더라도 느낌표나 특수문자 따위로 도배해서는 좋지 않습니다. 소리지르는 것을 좋아할 사람도 많지 않기 때문입니다.
  • 애걸하는 듯한 문구도 반갑지 않습니다. 자세하게 쓰여진 정중한 질문이라면 소리칠 필요도, 애원할 필요도 없을 것입니다.

국내 BBS 문서들은 HWP 포맷도 많이 있습니다. 이 문서들을 보려면 도스용 아래아 한글 3.x와 리눅스용 바이너리 파일들을 설치하거나 미지 리서치에서 개발한 리눅스용 한글 XR4, 또는 공개된 뷰어 프로그램인 HWP 뷰어를 이용하면 됩니다. HWP 뷰어 설치와 필요한 라이브러리, 사용법은 미지 리서치 홈페이지에 소개되어 있습니다.

도움을 얻었다면 자신의 경험이나 성공기를 올려 또 다른 리눅서에게 도움을 주는 것도 잊지 말아야 합니다.

3.2 NEWS group

han.comp.os.linux, han.comp.mail, 그리고 comp.os.linux.로 시작하는 뉴스그룹들을 방문하면 매우 많은 문서를 발견할 것입니다. 뉴스그룹의 공지사항은 announce, 잦은 질문들은 FAQ에 포스팅되어 있습니다.

news://geo.skku.ac.kr/geo.linux.klug에는 KLUG 관련 기사가 있습니다.

3.3 WEB Site

검색엔진을 사용할 때 'url'이나 'title'에 linux 가 포함된 사이트를 검색하면 더 좋은 결과를 얻을 것입니다. 아래에 국내외 유용한 사이트를 일부 정리해 보았습니다.

http://kldp.org 반드시 들러야 할 사이트입니다. 한글로 번역된 LDP 문서들과 리눅스 가제트, 한글화를 위한 문서 등 많은 보물들이 있습니다. 이 곳 목록에 없는 문서를 찾았거나 개발했다면 관리자인 권순선님에게 메일을 보내기 바랍니다.

http://www.linuxlab.co.kr 최초의 한글 리눅스 전문지 리눅스월드의 홈페이지입니다. 최신 리눅스 시디, 리눅스 서버와 기술 자문을 제공합니다.

httpd://linux.mizi.co.kr 리눅스에서 사용할 수 있는 한글 워드프로세서 아래아 한글XR4를 개발한 곳입니다. HWP 글꼴 서버, 한글 CGI, 한글 뷰어 등 리눅스 한글환경을 위해 애씁니다.

http://www.korealinux.co.kr 한글 알짜 레드햇 시디, 리눅스 서버와 다양한 기업 솔루션을 제공합니다.

http://www.clug.net 천리안 리눅스 동호회 홈페이지입니다.

http://www.ssc.com 리눅스 저널의 홈페이지입니다. 우리말로 번역되어 잡지에 실리기도 합니다.

http://www.linuxstart.com 리눅스 관련 웹 사이트와 정보에 대한 검색 서비스를 제공합니다.

http://www.linuxware.com 다양한 리눅스 정보가 제공됩니다.

http://www.linuxworld.com IDG 사에서 운영하는 리눅스 사이트로 오픈북 프로젝트가 진행되고 있습니다.

http://www.linuxtoday.com 인터넷에 올라 있는 리눅스 뉴스를 모아서 주제별로 제공합니다.

http://www.linuxcare.com 리눅스 기술지원, 컨설팅, 유지보수, 교육 등을 서비스하는 회사입니다.

http://www.linuxpower.com 리눅스를 더 강력하게 만드는 기사들을 제공합니다.

http://sunsite.unc.edu LDP 홈페이지가 개설되어 있습니다. 최신 LDP 문서들과 HOWTO 문서들이 있습니다.

http://www.redhat.com 레드햇을 통해 모든 리눅스 정보에 접근하고, 공유할 수 있도록 하는 원스톱 포탈 사이트를 개설하고 있습니다.

http://www.linux.com 리눅스 기반 하드웨어, 기술지원 등을 제공하는 VA리서치의 홈페이지입니다. 레드햇 처럼 리눅스 포탈 사이트를 계획하고 있습니다.

http://www.apache.kr.net 리눅스 시스템에서 가장 많이 쓰이는 웹서버 소프트웨어인 아파치 설치부터 가상 웹 서버까지 다양한 기사가 있습니다.

http://linux.sarang.net 가장 많은 리눅서가 활동하는 웹사이트입니다. 기초적인 것부터 고급 활용까지 아주 많은 정보가 교류됩니다.

http://www.linux.co.kr 리눅스와 관련된 자료들이 있는 리눅스 포탈사이트로 프로그램의 다운로드, 매뉴얼, 문서, 관련 사이트 소개, 번역자료 많은 자료가 있습니다.

http://metalab.unc.edu/ 앞서 소개한 리눅스 문서 프로젝트의 홈페이지입니다. 리눅스에 관련된 모든 문서가 이 곳에 있습니다.

http://www.linuxstart.com/ 초보자를 위한 리눅스 포털사이트로 리눅스에 관련된 웹사이트 가운데 추천 사이트를 소개합니다. 쉬운 설명과 강의식 문서들이 있어 리눅스를 편안하게 시작하도록 돕습니다.

http://www.linux.com/ 오랜 경험으로 쌓인 노하우와 열린 강의를 통해 리눅스에 대한 지식을 교류하는 리눅스 정보의 창고입니다.

http://www.linuxcentral.com/ 리눅스의 버전별로 다운로드와 운영하는 방법등을 소개합니다. 리눅스에 관련된 하드웨어 정보, 상용 소프트웨어 소개, 무료 소프트웨어 다운로드, 리눅스 서적 등에 대한 많은 이야기가 있습니다.

4. Books and journals

4.1 단행본

리눅스의 뛰어난 기능을 모두 활용하고 싶다면 반드시 레퍼런스를 읽어야 합니다. 좋은 전문서적들은 기초를 튼튼하게 만들어 주고 전문성을 길러줍니다. 단행본은 최신성이 부족하므로 판차와 발행일을 살펴 최근 것으로 고릅니다. 베스트셀러는 전혀 새로운 이름으로 출판되기보다 일반적으로 판차를 더해 나옵니다. 우리나라에서는 판차와 쇄차 구분이 잘 되어 있지 않아 쇄차를 판차처럼 쓰기도 하지만 쇄차는 책 내용과 전혀 상관 없습니다.

책 내용을 살펴 지나치게 많은 주제를 다루려는 책은 피해야 합니다. 그런 책은 그저 짧은 소개만으로 가득차 있게 마련이어서 대부분 가벼운 읽을거리에 지나지 않습니다. 초보를 위한 것이나 서가에 장식할 것이 아니라면 시스템관리, 네트워크, 보안, 프로그래밍 등 분야에 따라 전문적으로 다룬 책이 더 바람직합니다.

국내 리눅서들이 리눅스 신간을 많이 내었습니다. 많은 경험에서 배어 나오는 충실함이 보이는 책도 있고, 대부분 번역서보다 이해하기 쉽고 실전에 강한 책들이어서 많은 도움이 될 것입니다.

그리고, 많은 리눅서들이 항상 권하는 책이 있다. O'Reilly의 책들이 그 가운데 하나로 리눅스 전문가가 되고 싶다면 반드시 읽어야 할 보석 같은 책이 많습니다. O'Reily의 책 가운데 우리 말로 번역된 책들도 꽤 있습니다. 전문가가 번역하여 번역서의 느낌이 별로 없는 좋은 책들이므로 읽어보기를 권합니다.

4.2 정기간행물

정기 간행물을 통해 최신 정보와 다양한 주제에 대한 전문 지식을 얻을 수 있습니다. 리눅스만을 전문적으로 다루는 국내 월간지도 있고 고정적으로 리눅스 기사를 한 부분에 싣는 잡지도 몇 종류 있습니다. 주요 월간지 기사는 인터넷이나 상용 BBS IP를 통해서도 읽어볼 수 있습니다.

리눅스월드

최근의 이슈와 다양한 주제를 전문적으로 다룹니다. 광고나 다른 잡다한 기사들로 혼잡하지 않은 리눅서만의 전문지입니다. 리눅스월드의 편집장은 네트워크분야에서 매우 뛰어난 전문가입니다. http://www.linuxlab.co.kr

리눅스 매거진

일본의 리눅스 잡지를 번역한 기사와 국내의 전문가들이 기사를 싣습니다. 비싸지만 가장 많은 기사를 다룹니다.

리눅스@워크

프로그램세계에서 만든 리눅스 전문지로 미국의 리눅스 저널을 번역한 기사와 국내 전문가들의 기사가 실립니다. 여러분의 리눅스 박스에 바로 적용할 수 있는 실용적인 기사보다는 새로운 소식이나 이론 등이 소개됩니다. http://www.pserang.co.kr/lw/

PC 사랑

리눅스 사랑이라는 이름으로 리눅스 컬럼이 연재됩니다. 초보자의 눈높이에 맞춰 알기 쉬운 말로 자세하게 설명합니다. http://www.ilovepc.co.kr

마이크로소프트

마이크로소프트도 리눅스기사를 싣는 고정된 코너를 마련했습니다. 이름처럼 주로 윈텔박스를 위한 기사들을 수록하고 있지만 시디부록으로 리눅스 풀그림을 담기도 합니다.

http://www.infoage.co.kr/maso

그 밖에 PC 활용을 위한 종합 잡지에도 리눅스 기사들이 특집으로 실리기도 합니다.

5. 도서관

몇 페이지뿐인 리눅스 기사를 위해 두꺼운 잡지의 수많은 광고와 ms 활용 팁 따위를 참을 수 없다면 도서관에 가면 됩니다.

한 해 전만 해도 도서관에 있는 리눅스 관련서적들은 오래 되었거나 다양하지 않았습니다. 하지만 이제 도서관마다 서가 하나, 또는 그 이상을 리눅스 서적이 차지할 만큼 책이 많아졌습니다. 그 뒤에는 많은 리눅서들의 노력이 있었겠지요.

공공 도서관, 그리고 대학 도서관의 장서정책을 정하는 분들은 아마 리눅스에 대해 잘 모르겠지만 도서관에는 이용자가 필요한 책을 신청하는 매우 좋은 제도가 있습니다. 이 글을 읽어주신 여러분도 도서관을 살찌우는 데 도움을 줄 수 있습니다.

먼저 가까운 도서관에 갑니다. 그리고 리눅스 서가를 살펴 여러 분이 이미 읽었거나 알고 있는 리눅스 책이 없다면 신청합니다. 여러분이 신청한 리눅스 책들이 몇 달 후에는 서가를 더욱 충실하게 만들 것입니다. 그 다음 정기간행물실(혹은 참고열람실)로 가서 리눅스와 관련된 간행물을 살펴봅니다. 없다면? 신청해야겠지요.

모든 도서관에 서가 몇 개는 리눅스 관련 서적들로 차 있어야 한다고 생각합니다.

6. 이 문서에 대해

이런 문서가 전혀 없었던 것은 아니지만 그러나 여기저기 널려 있는 정보조각, 혹은 경험으로부터 쉬워 보이는 이 팁들을 익히는 데 나는 꽤 오랜 시간이 걸렸던 것을 기억합니다.

다른 훌륭한 리눅스 문서들처럼 이 문서가 더 정확하고 유용한 정보를 담아 이 글을 읽은 리눅서가 더 많은 자유를 누리게 되길 바랍니다. 가능하다면 많은 분들이 el@kldp.org에게 메일을 보내주면 고맙겠습니다. 이 문서에 대해 질문과 질타, 조언, 그 밖의 모든 메일을 환영합니다.

           __.
           | |
      ____ | |   ____  ____._______. ________
      / _ \| |   / _ \ / __|_. __| | | |_  / 
     |  __/| |__|  __/| /___.| | | |_| |/ /__|
     |_____|____|_____|_____||_| \_____/_____|

      el@linuxlab.co.kr
      homo 313ctronicus
      Hu 11ves o|/| tHE \/\/ir3.  EL..

문서작업을 계속할 수 있도록 도와준 윤리하님, 김숙중님께 감사드립니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-12-29 11:22:54
Processing time 0.0072 sec