man (Unix)

A Wikipédiából, a szabad enciklopédiából
Egy man kézikönyv lapja (a man parancsról)

A man page (a manual page rövidítése, magyar gyakorlatban elterjedt a referencia kézikönyv név is[1]) egy online súgó (help) rendszer, amelyet a "man" (manual pages - referencia kézikönyv) utasítással hívhatunk elõ. A man kézikönyv olyan, mint egy valódi kézikönyv: referencia jellegű, az egyes parancsok, függvények, fájlformátumok (legfeljebb néhány oldal terjedelmű) rövid, de pontos ismertetésével.

Történet[szerkesztés | forrásszöveg szerkesztése]

A UNIX Programmer's Manual először 1971. november 3-án jelent meg. Ennek a szerzői Dennis Ritchie és Ken Thompson, Doug McIlroy felkérésére. A man lapok makróit Ted Dolotta készítette (aki később a USG első menedzsere és a System III könyv főszerzője lett). A man kézikönyv minden rendszeren elérhető, és napjainkban is elterjedten használt az egyszerűsége és megbízhatósága miatt. Kevés alternatív változat létezik, ilyen például a texinfo , ami a legöregebb és legegyszerűbb hipertext rendszer, nem mellesleg a mögöttes TeX miatt nyomdai minőségben is képes nyomtatni. A Linux GUI rendszerek megjelenésével a dokumentáció HTML formátumban is elérhető.

A kézikönyv felépítése[szerkesztés | forrásszöveg szerkesztése]

A man referencia kézikönyv fejezetekből, alfejezetekből (vagy más néven alcsoportokból) áll. Tartalmazza továbbá az egyes parancsok lapjait, valamint a találathoz hasonló parancsok permutált indexét (egy rövid tárgymutató-szerű hivatkozást). Általában a referencia kézikönyv oldalai angol nyelven vannak írva, de a legtöbb rendszerben rendszerben más nyelven is elérhető, sőt jelentős mennyiségű magyar fordítás is készült[2].

Fejezetek[szerkesztés | forrásszöveg szerkesztése]

A referencia kötetek anyaga hagyományosan nyolc fejezetre tagolódik, ezek a következők:

Fejezet Leírás
1 A shell-ből kiadható, a felhasználó által meghívható parancsok (segédprogramok, utility-k).
2 Rendszer hívások. A UNIX kernel számára kiadható rendszerhívások gyűjteménye, C nyelvi szintaxis szerint megadva, ahogyan egy C nyelvű programból hívhatóak.
3 Szubrutinok. A standard és opcionális rendszerkönyvtárak rutinjai, például sztringkezelés, matematikai vagy képernyővezérlő rutinok.
4 Állományformátumok.
5 Vegyes szolgáltatások, állomány és adatformátumok.
6 Számítógépes játékok és képernyőfrissítők.
7 Perifériaállományok, a fizikai perifériákat reprezentáló fájlok struktúrája, és a megfelelő eszközmeghajtó (device driver) vezérlő parancsok.
8 Rendszeradminisztráció és karbantartás. Parancsok és daemon-ok.

Alfejezetek, alcsoportok[szerkesztés | forrásszöveg szerkesztése]

A fenti fejezeteken belül gyakran alcsoportok is megtalálhatóak, például 3M jelöli a 3. fejezet matematikai szubrutinjait, 3N a hálózatiakat és így tovább. Az irodalomban az egyes parancsokra való hivatkozásnál zárójelek között rendszerint megadják, hogy a parancs a referencia kézikönyv melyik fejezetében található, például ls(1) azt jelenti, hogy az ls parancs a man referencia kézikönyv első fejezetében található.

Indexek[szerkesztés | forrásszöveg szerkesztése]

A referencia kézikönyvek elején gyakran található egy úgynevezett permutált index, amely különösen akkor tehet jó szolgálatot, ha egy konkrét feladat megoldásához van szükség programra. A permutált indexben minden egyes UNIX parancs szerepel egy egysoros leírás erejéig, de az index minden egyes parancsismertető sor minden egyes szava szerint rendezett, s így tárgymutatóként használva pillanatok alatt megtalálhatóak azok a parancsok, amelyek leírásában az általunk keresett szó szerepel.

Egy kézikönyvlap felépítése[szerkesztés | forrásszöveg szerkesztése]

Egy parancs leírása a kézikönyv egy lapján[3] jelenik meg.

Minden man kézikönyv lapján a következő tartalmi elemek szerepelnek[4]:

Szekció Angolul Leírás
Fejléc Minimális esetben az megjelenített parancs nevét és zárójelben a kézikönyv fejezetszámát tartalmazza
NÉV (szakaszcím) NAME - a megjelenített téma neve és egysoros leírása
ÁTTEKINTÉS SYNOPSYS A téma nevét és kapcsolóit adja meg
LEÍRÁS DESCRIPTION A téma részletes leírása
OPCIÓK OPTIONS A téma (parancs) paramétereinek, kapcsolóinak részletes felsorolása és hatásainak bemutatása
VISSZATÉRÉSI ÉRTÉK RETURN VALUES A program vagy függvényhívás visszatérési értéke. Megállapodás szerint a void() értéket is jelölni kell. A szekció elmaradhat.
KÖRNYEZET ENVIRONMENT A hatásos környezeti változók felsorolása és leírása
FÁJLOK FILES A téma által használt (ideiglenes és konfigurációs) fájlok nevei. A szekció elmaradhat.
PÉLDÁK EXAMPLES A téma megértését megkönnyítő példák, ha szükség van rájuk. Elhagyható.
DIAGNOSZTIKA DIAGNOSTICS Tesztelési, diagnosztikai információk, amennyiben szükségesek. Elhagyható.
SZABVÁNYOK STANARDS Szabványok/platformok ismertetése, ha esetleges korlátozás is fennáll.
LÁSD MÉG SEE ALSO A témához kapcsolódó további témák felsorolása
HIBÁK BUGS Az ismert hibák felsorolása. Ideális esetben ez a szekció üres.
FORDÍTÁS AUTHOR[5] Információk a nyelvi változatokról, pl. fordító személy, stb.
Lábléc Opcionális információkat tartalmazhat. Nem kötelező.

Használata[szerkesztés | forrásszöveg szerkesztése]

Egy Unix parancsról részletesebb információkat man kézikönyvből lehet lekérdezni[6]:

man <parancs_neve>

Például a

man ls

a lemezkatalógus használatának leírását adja meg. Magáról a man parancsról is létezik kézikönyv-oldal:

man man

A referencia kézikönyv egy fejezetére hivatkozni a man parancsban a kért lap (manual page) elé írt fejezetszámmal lehet. Például létezik a chown utasítás mellett chown rendszerhívás is. Az első fejezetben található chown utasításról a

man 1 chown
parancs, 

míg a chown rendszerhívásról a

man 2 chown

ad leírást.

A man parancs kimenete a troff[7] tördelőprogram segítségével kulturáltan, képernyőoldalakra tördelve jelenik meg: sorkizárt 80 karakter széles, tagolt szöveg. Általában a szóköz billentyűvel lapozhatunk előre egy képernyőoldalnyit, "b"-vel (back - vissza) lapozhatunk vissza, "Enterrel" görgethetünk csak egy sort, és "q"-val (quit) léphetünk ki. A "h"-val (help) a lapozó program parancsairól kérhetünk gyors segítséget.

Minden manual oldalnak van egy egysoros címe, ezekben keresni lehet a

man -k lisp

paranccsal: ekkor kilistázódnak azok a manual oldalcímek, amelyek tartalmazzák a keresett lisp szót - először a címhez tartozó címszót, aztán zárójelben a fejezet számát, végül az oldal rövid leírását kapjuk meg.

Átirányítások[szerkesztés | forrásszöveg szerkesztése]

Alapértelmezés szerint a man parancs a képernyőre ír. Lehetőség van a megjelenített kimenet szövegfájlba való átirányítására. A következő példa a man parancs leírását a kimenet.txt nevű állományba irányítja át:

man man | col -b > kimenet.txt

A troff használatával PostScript kimenet is létrehozható, ez utóbbi PDF formátumba konvertálható a Ghostscript csomaggal:

 man -t foo | ps2pdf - kimenet.pdf

Példa[szerkesztés | forrásszöveg szerkesztése]

A man kézikönyv magyar nyelvű man oldala:


man(1)                                                                            man(1)

NÉV

      man - formázza és kiírja az on-line kézikönyvlapokat
      manpath - kiírja a felhasználó kézikönyvlap keresési útvonalát

ÁTTEKINTÉS

      man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S
      fejezet_lista] [fejezet] név ...

LEÍRÁS

      A man program formázza és kiírja az on-line kézikönyvlapokat. Ez a változat  ismeri
      a  MANPATH  és  a  (MAN)PAGER  környezeti  változókat,  így személyes kézikönyvlap-
      gyűjtemények is használhatók, illetve tetszőleges program használható  a  formázott
      lapok  megjelenítésére.  Ha a parancssorban egy fejezet nevét is megadjuk, a man 
      csak azt a fejezetet vizsgálja. Parancssorból vagy környezeti változókkal megadható 
      a fejezetekben való keresés sorrendje és hogy milyen előfeldolgozót kell futtatni a
      forrásfájlokra. Ha a név '/'-jelet tartalmaz, először konkrét fájlnévként  próbálja
      kezelni,  azaz pl.  man ./foo.5 vagy man /cd/foo/bar.1.gz a megadott fájlokat fogja
      feldolgozni és megjeleníteni.

OPCIÓK

      -C  config_file
             Meghatározza  a  használandó  konfigurációs  fájl   nevét.   Alapértelmezés:
             /etc/man.config.  (Lásd man.config(5).)

      -M  path
             Meghatározza  azon  könyvtárak listáját, amelyekben a lapok keresését végzi.
             Ilyen opció hiánya esetén a MANPATH környezeti változó  tartalmát  használja
             ugyanerre   a   célra.   Amennyiben   nincs  ilyen  környezeti  változó,  az
             alapértelmezett  listát  a  /etc/man.config  -ból  veszi.  A  MANPATH   üres
             rész-sztringje az alapértelmezett listát jelenti.

      -P  pager
             Megadja, melyik lapozó (pager) programot használja. Ez az opció felülbírálja
             a  MANPAGER  környezeti  változót.  Ez  pedig  (létezése  esetén)  a   PAGER
             környezeti   változót   bírálja   felül.  Alapértelmezés  szerint  a  man  a
             /usr/bin/less-is parancsot használja lapozónak.

      -S  fejezet_lista
             A kézikönyv vizsgálandó fejezeteinek kettősponttal elválasztott listája.  Ez
             az opció felülbírálja a MANSECT környezeti változót.

      -a     Alapértelmezés  szerint  a  man program kilép az első megtalált kézikönyvlap
             kijelzése után. Ez az opció azt eredményezi, hogy a man minden  olyan  lapot
             kijelez, amely illeszkedik a név-hez. (Nemcsak az elsőt.)

      -c     Újraformázza  a  kézikönyvlap  forrását  még akkor is, ha friss előformázott
             oldal (cat page) létezik. Ennek pl. akkor lehet értelme, ha az  előformázott
             lap a jelenlegitől eltérő oszlopszámú kijelzőn lett formázva.

      -d     Nem   jeleníti   meg   a   kézikönyvlapokat,  hanem  hibakereső  (debugging)
             információkat ír ki.

      -D     Megjelenít és hibakereső információkat is ad.

      -f     Eegyenértékű a whatis paranccsal.

      -h     Egy segítő üzenetet ír ki, majd kilép.

      -k     Egyenértékű az apropos paranccsal.

      -K     A megadott sztringet minden kézikönyvlapon keresi. Figyelem: ez valószínűleg
             nagyon   lassú  lesz!   Ajánlott  legalább  a  fejezetet  megadni.

      -m  system
             Egy  másik  kézikönyvlap  készletet  ad  meg,  megadott 'system' rendszernek
             megfelelően.

      -p  sztring
             Megadja az előfeldolgozók sorozatát, amelyet az nroff vagy troff előtt  fut-
             tatni  kell. Nem minden installációnak van teljes előfeldolgozó-készlete. Az
             előfeldolgozók, és a jelölésükre szoláló betűk a következőek: eqn (e),  grep
             (g),  pic  (p),  tbl (t), vgrind (v), refer (r).  Ez az opció felülbírálja a
             MANROFFSEQ környezeti változót.

      -t     A /usr/bin/groff  -Tps  -mandoc  parancsot  használja  a  formázásra,  és  a
             kimenetet   a  standard  kimenetre  küldi.  A  /usr/bin/groff  -Tps  -mandoc
             kimenetét esetenként célszeru lehet  néhány  szuron  keresztül  átküldeni  a
             nyomtatás elott.

      -w or --path
             Nem  jeleníti  meg  a  kézikönyvlapokat,  csak  a  formázandó illetve megje-
             lenítendo fájlok neveit írja ki.  Argumentum  nélkül  a  standard  kimeneten
             listázza  a keresésre használt könyvtárakat.  Amennyiben a manpath egy kötés
             (link) a man -ra, akkor 'manpath' egyenértéku a 'man --path' paranccsal.

      -W     Ugyanaz, mint -W, csak egy fájlnevet ír soronként egyéb információk  nélkül.
             Ez olyan burokparancsoknál hasznos, mint pl.  man -aW man | xargs ls -l

ELŐFORMÁZOTT OLDALAK

      A man program megpróbálja elmenteni a formázott kézikönyvlapokat, hogy megtakarítsa
      a  formázási  időt,  amikor  ugyanerre  a  lapra  lesz  a   későbbiekben   szükség.
      Hagyományosan  a  'DIR/manX'  formázott  lapjait  a  'DIR/catX'-be  menti,  de  más
      megfeleltetések is beállíthatók a /etc/man.config fájlban. Nem történik mentés,  ha
      a megfelelo 'cat' könyvtár nem létezik.

      Lehetséges  a  man  suid  bitjét beállítani a 'man' felhasználónak. Ekkor ha a cat-
      könyvtárnak 'man' a tulajdonosa, és a módja 0755 (csak a 'man' által írható), és az
      előformázott  cat-fájlok  tulajdonosa is 'man', és módjuk 0644 vagy 0444, akkor egy
      rendes felhasználó sem tudja az eloformázott lapokat lecserélni, vagy más  fájlokat
      írni a cat-könyvtárba.

      Amennyiben  a man nem suid-os, a cat-könyvtárnak 0777 módúnak kell lenni, hogy min-
      den felhasználó tudjon előfordított lapokat tenni ide.

      A -c opció  hatására  a  lap  akkor  is  újraformzádik,  ha  már  létezik  aktuális
      előformázott lap.

KÖRNYEZET

      MANPATH
             Amennyiben  a  MANPATH  nem üres, értéke a kézikönyvlapok keresési útvonalát
             adja meg.

      MANROFFSEQ
             A MANROFFSEQ tartalma az előfeldolgozók halmazát határozza meg, melyeket  az
             nroff  vagy troff elott kell futtatni. Alapértelmezés szerint a lapok a 'ta-
             ble' előfeldolgozón mennek át az nroff előtt.

      MANSECT
             A MANSECT értéke a keresendő kézikönyv fejezeteket adja meg.

      MANWIDTH
             A MANWIDTH értéke a lapok kijelzéskor használandó szélességét adja  meg.  Ha
             ez a változó üres, a lapokat a képernyő teljes szélességében jeleníti meg.

      MANPAGER
             A  MANPAGER  értéke  a formázott lap megjelenítésére szolgáló programot adja
             meg. Amennyiben üres,  a  PAGER  -t  használja.  Ha  ez  is  üres,  akkor  a
             /usr/bin/less -is parancs jeleníti meg a lapot.

      LANG   Amennyiben  a  LANG  környezeti  változó nem üres, egy könyvtárnevet ad meg,
             ahol a man először keresi a kézikönyvlapokat. Így a 'LANG=dk ;  man  1  foo'
             hatására  először  a 'DIR/dk/man1/foo.1' fájlt próbálja megjeleníteni, ha ez
             nem létezik, akkor a 'DIR/man1/foo.1'-et. Itt 'DIR' egy könyvtár a  keresési
             útvonalból.

      NLSPATH, LC_MESSAGES, LANG
             Az  NLSPATH  és  LC_MESSAGES  vagy  LANG  környezeti  változók  az  üzenetek
             katalógusának elhelyezkedésében játszanak szerepet.  (Az  angol  üzenetek  a
             programba  vannak fordítva, így ehhez a nyelvhez nem kell katalógus.) Meg-
             jegyzendő, hogy olyan programok, mint pl. a col(1), melyet a 'man' hív, szin-
             tén használják pl. az 'LC_TYPE' változót.

      PATH   A   PATH   értéke   az   alapértelmezett   kézikönyvlap   keresési   útvonal
             összeállításában játszik szerepet.

      SYSTEM A SYSTEM változót arra használja, hogy az alapértelmezett választható  rend-
             szernév értékét határozza meg. (Lásd a -m opciót.)

LÁSD MÉG

      apropos(1), whatis(1), less(1), groff(1).

HIBÁK

      A -t opció csak akkor muködik, ha egy troff-szerű program is rendelkezésre áll.
      Amennyiben villogó \255 vagy <AD> látható a '-' jel helyett, a 'LESSCHARSET=latin1'
      beállítást kell alkalmazni.

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Gyakran (helytelenül) egyszerűen csak man-nak nevezik a referencia kézikönyvet is és a referencia kézikönyv egyes oldalait megjelenítő man parancsot is.
  2. http://tldp.fsf.hu/man.html Magyar Linux Dokumentációs Projekt- Kézikönyv oldalak
  3. A kézikönyv egy lapja logikai fogalom: az fejléctől a leírás végéig tart, függetlenül attól, hogy hány nyomtatott oldalból áll.
  4. Az első négy szekció kötelező
  5. Angol nyelvű változatnál nincs fordítás, ebben a szekcióban a szerző adatai szerepelnek.
  6. A Unix/Linux rendszerek érzékenyek a kisbetű-nagybetű közötti különbségekre! A parancsok nevei mindig kisbetűvel írandóak.
  7. Nem minden rendszeren található meg, de számos változata létezik, mint például az nroff, groff, runoff, stb.

Felhasznált irodalom[szerkesztés | forrásszöveg szerkesztése]

  • Szemethy Tivadar: Unix ismertető
  • Bartók Nagy János - Laufer Judit: UNIX FELHASZNÁLÓI ISMERETEK, Openinfo Kiadó, Bp.
  • Bagoly Zsolt - Papp Gábor: UNIX alapismeretek, Bp., CoDe Kft.,1995, ISBN: 9630449552

További információk[szerkesztés | forrásszöveg szerkesztése]