Negyedik lecke

"Ha már minden kisérleted csődot mond, olvasd el a használati utasítást"
(Murphy)
Verzió: 1.0

Információk a Unixról

Egy olyan bonyolult operációs rendszernél, mint amilyen a Unix, nagyon nagy szerepe van az írásos dokumentációnak. Ez a lecke arról szól, hogy hogyan és honnan lehet választ kapni a kérdéseinkre.

Angol nyelvű könyvek

Az információk legfontosabb forrása a rendszerrel együtt szállított dokumentáció. Minden valamire való Unixhoz félelmetes mennyiségű és súlyú dokumentáció érkezik (az írókat alighanem oldalszám szerint fizették), úgyhogy ahhoz is kell némi jártasság, hogy mikor melyik könyvet nyissuk ki. A "könyvek könyve" a Unix Reference Manual". Ezt többnyire az alábbi fejezetekre osztják:
  1. A shellből kiadható parancsok.
  2. Rendszerhívások.
  3. A C nyelvű függvénykönyvtárak függvényei.
  4. Eszközkezelő programok (device drivers), adatátviteli formátumok.
  5. Fájlformátumok.
  6. Játékok és demók.
  7. Bárki számára hozzáférhető fájlok, táblázatok, TROFF makrok.
  8. Rendszeradminisztrációs és karbantartó programok.
E nyolc csoporton belül alcsoportokat is megkülönböztetünk. A parancsokra való hivatkozásnál zárójelben azt is megadják, hogy a parancs leírása melyik kötetben található: ls(1), stb.

Általában a SUN gépek dokumentációit tartják legjobbnak, ezért a SUN dokumentációt bizonyos esetekben - kihasználva a Unix hordozhatóságát- más gépeknél is használhatjuk.

A rendszer dokumentációján kivül a Unixról számtalan további hosszabb-rövidebb, részletes és kevésbé részletes könyvet írtak már, ezek minden könyvtárban és könyvesboltban polcokat töltenek meg. Ha tudunk angolul, biztosan megtaláljuk az ízlésünknek, tudásunknak és pénztárcánknak megfelelő könyvet. A sok közül egy nagyon alapfokút említünk meg:

Peter Norton - Harley Hahn: Peter Norton's Guide to Unix (Bantam Books) (Ez a könyv úgy íródott, hogy a számítástechnikai analfabéták is megértsék.)

Magyar nyelvű könyvek

Magyar nyelven is megjelent a Unix-bibliának számító Kernighan-Pike könyv. Címe:

Brian W. Kernigham - Rob Pike: A Unix operációs rendszer (Műszaki könyvkiadó) Eredeti címe: The Unix programming environment.

Jelenleg is (1994 január) kapható Magyarországon, ára 800 forint körül van. Ha komolyan akarunk Unixal foglalkozni, akkor mindenképpen érdemes szert tennünk rá, mert hasznos és érdekes könyv, a hirdetéseket leszámítva mind a 350 oldala fontos dolgokat mond el a Unixról. Ez a legjobb magyar nyelven megjelent könyv a Unixról, amivel eddig találkoztunk.

Képernyőn megjeleníthető dokumentáció

Minden Unix rendszeren a Reference Manual első fejezetét felviszik a gépre is, ahol a man parancs segitségével lehet olvasgatni az egyes lapokat. Ha például kíváncsiak vagyunk rá, hogy mit ír a dokumentáció az sh programról, adjuk ki a man sh parancsot. Válaszul elönti a képernyőnket az sh program mindenre kiterjedő, részletes, és hat-nyolc oldalas leírása. (Komoly feladat az ilyen információözönből kikeresni azt az egy mondatot, amire történetesen szükségünk van.)

A man-ban minden parancs leírásával egy "lap" (Page) foglalkozik, még akkor is, ha egy ilyen lap esetenként több képernyőoldalt tesz ki. Nézzük meg egy példán, hogy a man lapjai milyen címszavakat tartalmaznak:

zeus% man sh

SH(1)                         Silicon Graphics                         SH(1)

NAME
     sh, rsh - shell, the standard/restricted command programming language
Ez alatt a címszó alatt egy sorban leírják, hogy a parancs mit csinál. Gyakori, hogy a logikailag összetartozó parancsokat egy lapon szerepeltetik a dokumentációban. (Mint például itt is).
SYNOPSIS
     /bin/sh  -acefhiknrstuvx  [ args ]
     /bin/rsh -acefhiknrstuvx  [ args ]
Itt felsorolják, hogy hogyan lehet paraméterezni a parancsot, milyen kapcsolokat ismer, stb. (A szögletes zárójelek jelentéséről már volt szó a második leckében).
DESCRIPTION
     sh is a command programming language that executes commands read from a
     terminal or a file. sh is a restricted version of the standard command
     interpreter sh; it is used to set up login names and execution
Itt részletesen is ismertetik, hogy a parancs mit is csinál, hogyan és mire lehet használni, stb.
OPTIONS
Ez alatt a címszó alatt találjuk a parancs kapcsolóinak részletes ismertetését. Próbaképpen érdemes megnézni az ls parancs kapcsolóit.
FILES
     /etc/profile
     $HOME/.profile
Itt felsorolják azokat a fájlokat, amelyeknek valami közük van a parancshoz. (Például a program futás közben olvas valamelyikből, adatokat ment bele, vagy éppen a program működését lehet tartalmukkal befolyásolni.
SEE ALSO
     cd(1), dup(2), echo(1), env(1), exec(2), fork(2), getopts(1),
     getrlimit(2), intro(1), login(1), newgrp(1), pipe(2), profile(4)
Bár első ránézésre nem látszik, de ez a legfontosabb címszó. Itt vannak felsorolva ugyanis azok a parancsok, amelyek kapcsolódnak a címszóban említett programhoz. Ha a fenti szöveg átolvasása után sem találtuk meg azt amit keresünk, akkor nézzük meg az itt felsorolt parancsokról szóló dokumentáció lapokat!
BUGS
Murphy szerint "Mindig marad egy huba" -- a már felderített, de még ki nem javított hibákat itt sorolják fel.

Megjegyzés: Peter Norton szerint ha megkérdezünk egy Unix buherátort, hogy mit adjunk az édesanyánknak anyák napjára, ezt fogja válaszolni: "Nyomtasd ki neki az sh-ról szóló fejezetet a man-ból."

A man parancs fájdalmas tulajdonsága, hogy a benne tárolt adatok a "mi mire való" elv alapján vannak szervezve, így egy kezdő, aki arra kiváncsi hogy "mit hogy kell megcsinálni" nehezen boldogul vele. A Unix programozó-barát és felhasználó-ellenes szemlélete kétségkívül a man parancsban ütközik ki a legélesebben.

A dokumentáció lapjait általában a more parancs segítségével listázzák ki. Ilyenkor kereshetünk is a szövegben, ha a --More-- felirathoz egy / jel után beírjuk a keresett szót. Ilyenkor a more parancs nem a következő oldalt jeleníti meg, hanem előre ugrik a szövegben annyit, hogy a keresett szót tartalmazó sor a képernyő legalsó sorába kerüljön. Jegyezzük meg azonban, hogy ezzel a módszerrel csak előrefele lehet keresni!

A whatis parancs segítségével egymondatos leírást kaphatunk arról, hogy a parameterként megadott parancs mire való. A whatis program valójában nem csinál mást, mint kiírja a megadott parancs man lapjáról a NAME mező tartalmát. Például:

zeus% whatis cat
cat (1)           - concatenate and print files
zeus% whatis love
No manual entries seem appropriate for love.
Mi történik olyankor, ha nem arra vagyunk kiváncsiak, hogy egy parancs mit csinál, hanem adva van egy feladat, és azt akarjuk tudni, hogy melyik paranccsal lehet megoldani ? Nos, ilyenkor legjobb, ha megkérdezünk egy buherátort. (Egy igazi buherátor természetesen ezt fogja válaszolni: "Bármelyikkel!") Némi támpontot adhat az, hogy a man adatbázisban a -k kapcsoló segítségével parancsnév helyett kereshetünk valamilyen kulcsszót is:
zeus% man -k 'execution time'
profile(2)      - execution time profile
sprofile(2)     - execution time profile or disjoint text spaces
Ugyanerre való az apropos parancs:
zeus% apropos close
ALcloseport (3A)        - releases an audio port's resources
endclosedline (3G)      - delimit the vertices of a closed line
CDclose (3)             - closes a CD-ROM device
close (2)               - close a file descriptor
closeobj (3G)           - closes an object definition
.
.
.
Szerencsére vannak jóval fejlettebb megoldások: ilyen például a Silicon Graphics gépek insight nevű programja. Ez egy grafikus felületen futó hipertext rendszer, kereszthivatkozásokkal és példákkal, sajnos azonban csak grafikus terminálon lehet használni és természetesen csak a Silicon Graphics gépein.

Segítség elektronikus levélben

Kivétel nélkül minden Unixos gépnek van egy rendszergazdája, akinek írhatunk e-mailt, ha valamilyen kérdésünk van. Címe: root, de gyakran postmaster-nek vagy advisory-nak is hívják. Fontos szabály, hogy a világ összes rendszergazdája gyűlöli a buta kérdéseket, ezért csak akkor írjunk a root-nak,* ha már minden egyéb kisérletünk csődöt mondott! A rendszergazda elvárja tőlünk, hogy előbb a manual átolvasásával, saját erőnkből próbáljuk meg megoldani a problémánkat. Másképp könnyen lehet, hogy egy túlságosan buta kérdésre válasz helyett az RTFM üzenetet kapjuk. (RTFM = Read The F***ing Manual!)

Feladatok

E lecke feladatai a man használatához kapcsolódnak, így sajnálatos módon csak az angolul értők tudják őket megoldani. (Nem is kell hangsúlyoznunk, hogy minden valamirevaló buherátor legalább annyit tud angolul, hogy a man-ból ki tudja bogarászni a szükséges információkat.) Ha tehát még nem tudunk angolul, akkor máris eggyel több érv szól amellett, hogy holnap reggel beiratkozzunk egy angol nyelvtanfolyamra...

A man segítségével adjunk választ a következő kérdésekre:

  1. Mit csinál a banner parancs? Próbáljuk ki!

  2. Mit csinál a sleep parancs?

  3. A harmadik leckében szó volt az at parancsról,* amelynek segítségével egy megadott időpontban lehet végrehajtani egy programot. A végrehajtandó programok egy várólistára (queue) kerülnek. A várólistát meg lehet nézni, és a várakozó programokat meg végrehajtásuk előtt ki lehet venni a listából. Derítsük ki a manualból, hogy hogyan? Próbáljuk ki! (Tegyünk egy tetszőleges parancsot a várólistára az at paranccsal, majd töröljük ki, mielőtt a rendszer végrehajtaná!

  4. Olvassuk végig, hogy mit ír a manual az ls parancsról!


*************************************************************************
*=                                                                     =*
*=                           SZERZOI JOGOK                             =*
*=                                                                     =*
*=   Ez  a dokumentum a Unix  operacios  rendszer  es a szamitogepes   =*
*=   halozatok elterjedeset  kivanja  elosegiteni, ezert dijmentesen   =*
*=   terjesztheto.  Nem szabad azonban a terjesztes soran a szoveget   =*
*=   megvaltoztatni,  barmilyen  modon  megcsonkitani  es a  szerzoi   =*
*=   jogokra vonatkozo megjegyzest eltavolitani!  Sem  a dokumentum,   =*
*=   sem annak barmely resze nem hasznalhato fel segedanyagkent vagy   =*
*=   tankonyvkent profitorientalt intezmenyekben vagy tanfolyamokon,   =*
*=   a szerzok elozetes irasbeli engedelye nelkul!                     =*
*=                                                                     =*
*=   (C) Csaky Istvan es Mork Peter         Miskolc, 1994. januar 19   =*
*=                                                                     =*
*************************************************************************