Gentoo Logo

Czytanie stron man

Spis treści:

1.  Wstęp

Program man

Każdy użytkownik Linuksa korzystał z polecenia man. Na pierwszy rzut oka jego obsługa wydaje się prosta. Program ten posiada jednak kilka ciekawszych funkcji niż tylko proste przewijanie strony. Ten dokument ma na celu zaprezentować jego pełne możliwości.

Podział stron man

Strony man znajdują się głównie w katalogu /usr/share/man. Tak długo, jak długo strona manuala będzie znajdowała się w katalogach wymienionych w zmiennej środowiskowej MANPATH, man będzie w stanie ją odczytać. W Gentoo zmienną MANPATH konfiguruje się w /etc/env.d. Wewnątrz tego katalogu znajdują się katalogi o nazwach manX, gdzie X to numer sekcji. Na przykład standardowy podział stron man wygląda w ten sposób:

Listing 1.1: Standardowa struktura man

$ ls /usr/share/man | grep man
man0p
man1
man1p
man2
man3
man3p
man4
man5
man6
man7
man8
man9
mann

Powyższa numeracja sekcji wygląda dosyć standardowo. Należy zauważyć, że znajdują się tam katalogi mann oraz man#p. Poniższa tabela opisuje katalogi stron man wraz z ich zawartością:

Nazwa katalogu Opis
man0p p oznacza tu POSIX, tak jak w innych katalogach, które mają "p" w nazwach. Strony manuali w tym katalogu opisują funkcje różnych plików nagłówkowych POSIX.
man1 Ta sekcja jest dla standardowych poleceń. Większość programów umieszcza swoje manuale tutaj, więc jest ona największa.
man1p Ta sekcja opisuje wersję POSIX poleceń opisanych w 1p. Ponieważ opisuje tylko podstawowe polecenia, jest o wiele mniejsza niż man1.
man2 Ta sekcja opisuje systemowe sygnały jądra Linux
man3 Ta sekcja opisuje funkcje standardowej biblioteki C
man4 Ta sekcja opisuje specjalne urządzenia. Urządzenia te są głównie kernelowe, ale Xorg-X11 również ma tu swoje wpisy.
man5 Ta sekcja opisuje zawartość ważnych plików, których używają programy. Są tu np. części man portage dla opisu struktury plików portage oraz man 5 make.conf z opisem tworzenia make.conf.
man6 Ta sekcja prezentuje gry i inne specjalne gadżety
man7 Ta sekcja opisuje standardy, takie jak zestawy znaków, komunikaty SQL, normy ISO i wyrażenia regularne.
man8 Ta sekcja opisuje komendy administracyjne (te uruchamiane z konta roota)
man9 Niezbyt duży katalog zawierający dokumentację dla różnych części jądra.
mann Ta sekcja jest używana głównie przez Tcl/Tk. Litera n oznacza "nowy".

Nie jest to dokładna lista. Opisuje jedynie te strony man, którymi może być zainteresowana większość ludzi. Czasem można sprawdzić za co odpowiada sekcja, patrząc tylko na powyższą tabelę. W następnym rozdziale przyjrzymy się używaniu programu man.

2.  Praca z układem man

Przeglądanie układu man

Teraz, kiedy rozumiemy już układ stron man, możemy zacząć przyglądać się poleceniom. Czasami będzie trzeba dokładniej określić, którą stronę manuala potrzebujemy. Pierwszym sposobem jest adresowanie przy pomocy sekcji. Aby znaleźć opis sekcji, można użyć man sekcja intro, na przykład:

Listing 2.1: Używanie man intro do opisywania sekcji

$ man 3 intro
(Wyjście polecenia zmienione, aby pasowało do tego dokumentu)
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:
....

Niestety, nie zawsze to działa. Na szczęście jest inny sposób wyszukiwania poleceń, które mogą zwrócić różne rezultaty (jak wywołanie biblioteki i polecenie systemowe, posiadające taką samą nazwę). Aby to zrobić, dodamy parametr -K do man:

Listing 2.2: Używanie man -K do wyszukiwania za pomocą ciągu

$ 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

Czasami wynik może być o wiele większy. W takim wypadku dobrym wyjściem jest podanie większej ilości słów kluczowych. Wiemy już jak znaleźć manual, który nas interesuje. W następnym dziale zajmiemy się przeglądaniem manuali.

Przeglądanie manuali

Przeglądać manuale można na dwa sposoby, pierwszy z nich to man [nazwa strony manuala]. Drugim sposobem jest man [sekcja] [nazwa strony manuala]. Weźmy jako przykład bc. Możemy zobaczyć pierwszą stronę manuala, która pokazuje się dla bc (która jest w sekcji 1, ponieważ jest to najniższa sekcja, która zawiera man dla bc):

Listing 2.3: Przeglądanie domyślnej strony man

$ man bc
bc(1)                                            bc(1)


NAME
       bc - An arbitrary precision calculator language
...

A co jeśli chcemy wersję POSIX? Wtedy możemy użyć drugiego sposobu:

Listing 2.4: Przeglądanie określonej strony man ze względu na sekcję

$ man 1p bc
BC(P)        POSIX Programmer's Manual           BC(P)


NAME
       bc - arbitrary-precision arithmetic language
...

I manual zostaje wyświetlony. Teraz kiedy już go widzimy nadszedł czas żeby z nim popracować. W następnej sekcji przyjrzymy się nawigacji i wyszukiwaniu.

Nawigacja i szukanie w stronach man

Nawigacja jest dość prosta. Aby poruszać się w górę i w dół linia po linii, należy korzystać z klawiszy strzałek "góra" i "dół". Aby przeglądać strona po stronie, należy używać klawiszy "Page Up" oraz "Page Down". Instrukcje nawigacji przyjmują, że zmienna środowiskowa PAGER jest ustawiona tak, by używała standardowego programu stronicującego, czyli less. Less posiada także kilka innych poleceń do nawigacji, ale klawisze strzałek przeważnie wystarczają.

Listing 2.5: Dodatkowe klawisze nawigacji dla less

  e  ^E  j  ^N  CR  *  Przewiń o jedną linię (lub o N linii).
  y  ^Y  k  ^K  ^P  *  Cofnij o jedną  linię (lub o N linii).
  f  ^F  ^V  SPACE  *  Przewiń  o jeden ekran (lub o N linii).
  b  ^B  ESC-v      *  Cofnij o jeden ekran (lub o N linii).
  z                 *  Przewiń o jeden ekran (i ustaw ekran na N).
  w                 *  Cofnij o jeden ekran (i ustaw ekran na N).
  ESC-SPACE         *  Przewiń o jeden ekran, ale nie zatrzymuj się na końcu pliku.
  d  ^D             *  Przewiń o pół okna (i ustaw pół okna na N).
  u  ^U             *  Cofnij o pół okna (i ustaw pół okna na N).
  ESC-)  RightArrow *  W lewo o pół szerokości ekranu (lub o N pozycji).
  ESC-(  LeftArrow  *  W prawo o pół szerokości ekranu (lub o N pozycji).
  F                    Przewijaj ciągle; jak "tail -f".

Przeszukiwanie jest bardziej interesujące. Dwoma podstawowymi wyszukiwarkami są /zapytanie oraz ?zapytanie. Pierwsza wersja przeszukuje do przodu, a druga wstecz. zapytanie to wyrażenie regularne. Więcej o wyrażeniach regularnych można poczytać w man 7 regex. Weźmy na przykład wyszukiwanie opcji -D dla emerge. Po pierwsze, wyświetlmy manuala emerge:

Listing 2.6: Wyświetlanie manuala emerge

$ man emerge

Kiedy już manual się wyświetli, naciskamy klawisz /, który spowoduje pojawienie się znaku zachęty, a następnie wpisujemy szukane wyrażenie:

Listing 2.7: Wyszukiwanie wprzód

     gracefully handles updating installed packages to newer releases as well.

EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES
/\-D

Uwaga: Znak \ jest znakiem ucieczki dla -, który bez niego byłby błędnie zinterpretowany jako część wyrażenia regularnego.

To przeszuka manuala i podświetli wyszukiwane informacje:

Listing 2.8: Wyniki wyszukiwania do przodu

  --deep (-D)
      Ta flaga kiedy jest używana w połączeniu z --update wymusza na emerge
      rozpatrywanie wszystkich zależności drzewa pakietów, łącznie z
      bezpośrednimi zależnościami pakietów. Na przykład, te uaktualnienia w
      bibliotekach, które nie są bezpośrednio wyświetlone jako zależności
      pakietu.

Jeśli skasujemy przez przypadek wzorzec wyszukiwania, a chcemy kontynuować przeszukiwanie, wystarczy ponownie nacisnąć klawisz / i enter. To spowoduje wyszukanie ostatniego użytego wzorca. Czasem strona man najpierw tylko wspomina o jakiejś opcji, a jej opis znajduje się w dalszej części mana. Weźmy stronę man 5 portage. Wypisuje używane pliki, a następnie wyjaśnia ich użycie. Wyszukiwanie do przodu kilka razy zwróci wyniki, ale jest łatwiejszy sposób, aby się z tym uporać. Jest to druga opcja wyszukiwania, wyszukiwanie wstecz. Użyjmy jej by znaleźć opis package.unmask. Najpierw wyświetlmy man 5 portage:

Listing 2.9: Wyświetlanie man 5 portage

$ man 5 portage

A teraz wciskamy SHIFT+g, co przeniesie nas na koniec strony.

Listing 2.10: Koniec manuala po wciśnięciu 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)

Teraz pójdźmy dalej i wpiszmy zapytanie do wyszukiwania przy pomocy opcji ?zapytanie. Najpierw należy nacisnąć klawisz ?, aby przenieść się do znaku zachęty, a następnie wpisać package.unmask, czyli nasze zapytanie:

Listing 2.11: Określanie zapytania

SEE ALSO
       emerge(1), ebuild(1), ebuild(5), make.conf(5)

Portage 2.0.51        Jan 2004           PORTAGE(5)
?package.unmask

Następnie należy wcisnąć enter, aby otrzymać wynik:

Listing 2.12: Rezulatat wyszukiwania

  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.
...

Podobnie jak w przypadku znaku /, użycie ? bez podania wzorca spowoduje wyszukanie ostatniego zapytania.

Podsumowanie

To koniec tekstu o przeglądaniu stron man. Mamy nadzieję, że pozwoli on poznać nawigację po stronach manuali i dostarczy kilku wskazówek bardziej doświadczonym użytkownikom. Ci którzy preferują alternatywne metody przeglądania manuali mogą zajrzeć jeszcze tutaj:

  • app-text/man2html - program do konwersji manuali do html
  • app-text/tkman - przeglądarka manuali oparta na tk

Oprócz tego domyślna przeglądarka internetowa dla KDE, Konqueror może wyświetlać manuale używając składni man: w pasku adresu.



Drukuj

Zaktualizowano 18 czerwca 2006

Podsumowanie: Tekst opisujący program man służący do przeglądania stron podręcznika systemowego.

Chris White
Autor

Michał Brudka
Tłumaczenie

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.