Negyedik lecke

"Ha már minden kisérleted csodot 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 nyelvu 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égu é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 shellbol kiadható parancsok.
  2. Rendszerhívások.
  3. A C nyelvu függvénykönyvtárak függvényei.
  4. Eszközkezelo 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érheto 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 megfelelo 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 nyelvu 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 (Muszaki 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épernyon megjelenítheto dokumentáció

Minden Unix rendszeren a Reference Manual elso 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épernyonket az sh program mindenre kiterjedo, részletes, és hat-nyolc oldalas leírása. (Komoly feladat az ilyen információözönbol 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épernyooldalt 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érol 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 valamelyikbol, adatokat ment bele, vagy éppen a program mukö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 elso 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 kezdo, 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övetkezo oldalt jeleníti meg, hanem elore ugrik a szövegben annyit, hogy a keresett szót tartalmazó sor a képernyo legalsó sorába kerüljön. Jegyezzük meg azonban, hogy ezzel a módszerrel csak elorefele 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 mezo 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 nevu 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 gyulöli a buta kérdéseket, ezért csak akkor írjunk a root-nak, ha már minden egyéb kisérletünk csodöt mondott! A rendszergazda elvárja tolünk, hogy elobb a manual átolvasásával, saját eronkbol 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 értok tudják oket 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övetkezo 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 idopontban 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 elott ki lehet venni a listából. Derítsük ki a manualból, hogy hogyan? Próbáljuk ki! (Tegyünk egy tetszoleges parancsot a várólistára az at paranccsal, majd töröljük ki, mielott 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   =*
*=                                                                     =*
*************************************************************************