DOS-ról Linuxra HOGYAN

Guido Gonzato <guido@ibogfs.df.unibo.it>

1996. december 11. Verzió: 1.0

----------------------------------------------------------------------------
Ez a kis útmutató azoknak a (talán hamarosan csak volt) DOS felhasználóknak
szól, akik éppen most döntöttek úgy, hogy elmerülnek a Linux - egy ingyenes
Unix változat - rejtelmeiben. A dokument célja, hogy a DOS és Unix közötti
hasonlóságokat kihasználva segítse az olvasót abban, hogy a DOS-os tudását
minél könnyebben Linuxos tudássá fordíthassa és ezáltal sokkal produktívabb
lehessen.
----------------------------------------------------------------------------

1. Bevezetés

   * 1.1 A Linux valóban megfelel Neked?
   * 1.2 Igen, ez az! Mesélj még...!
   * 1.3 Türelmetleneknek

2. Fájlok és programok

   * 2.1 Fájlok: előzetes megjegyzések
   * 2.2 Szimbolikus linkek
   * 2.3 Hozzáférési engedélyek és tulajdonjogok
   * 2.4 DOS-os parancsok Linuxos megfelelői
   * 2.5 Programok futtatása: többfeladatúság
   * 2.6 Programok futtatása távoli gépeken

3. Könyvtárak használata

   * 3.1 Könyvtárak: előzetes megjegyzések
   * 3.2 Könyvtárakhoz történő hozzáférés
   * 3.3 Parancsok fordítása DOS-ról Linuxra

4. Hajlékony-, merevlemezek és további hasonlók

   * 4.1 Eszközmeghajtók használata
   * 4.2 Mentések

5. A rendszer konfigurálása

   * 5.1 Rendszer inicializáló fájlok
   * 5.2 Program inicializáló fájlok

6. Egy kis programozás

   * 6.1 Szkriptek: .BAT fájlok Linuxon
   * 6.2 C

7. A maradék 1%

   * 7.1 Virtuális Memória
   * 7.2 A tar és gzip programok használata
   * 7.3 Programok telepítése
   * 7.4 Tippek amik nékül nem boldogulsz
   * 7.5 Hasznos programok és parancsok
   * 7.6 Gyakori kiterjesztések és ezekkel kapcsolatos programok

8. Vége, egyelőre

   * 8.1 Copyright

----------------------------------------------------------------------------
----------------------------------------------------------------------------

1. Bevezetés

1.1 A Linux valóban megfelel Neked?

DOS-ról Linuxra akarsz váltani? Kitűnő ötlet, de légy tisztában azzal, hogy
olyan nincs, hogy "a legjobb számítógép", vagy "a legjobb operációs
rendszer": ezek a fogalmak mind attól függenek, hogy mit szeretnél csinálni!
Ez az amiért nem hiszem, hogy mindenkinek a legjobb megoldás a Linux, még
akkor sem, ha technikailag jóval kiemelkedőbb több kereskedelemben kapható
operációs rendszernél. Rendkívül hasznos lehet számodra, ha fejleszteni
akarsz, Internetezni, TeX-et használni, s úgy általában tudományos
szoftvereket szeretnél használni, de ha elsősorban kereskedelmi programokra
vágysz és nem érzel nagyobb hajlandóságot tanulni illetve szükségtől függően
parancsokat gépelgetni, akkor jobban teszed, ha máshol nézel körül.

A Linuxot (jelenleg) nem olyan könnyű használni és konfigurálni, mint a
Windows-t és a Macintosh-t (legalábbis elsőre), így készülj fel arra, hogy
szükséged lesz jónéhányszor "buherálni". Ezen figyelmeztetések ellenére hadd
mondjam, hogy 100%-ig biztos vagyok abban, hogy ha Te a megfelelő
felhasználó típusba tartozol, akkor a Linuxban megtalálod a Nirvanát. Rajtad
múlik. Ne felejtsd el azonban, hogy a Linux és a DOS/Windows képes ugyanazon
a gépen egyidejűleg létezni.

Előfeltételek a dokumentumhoz: feltételezem, hogy

   * ismered az alapvető DOS parancsokat és fogalmakat;
   * a Linux és az X Window System megfelelően van telepítve a
     számítógépeden;
   * bash a shell-ed --- ami a DOS-os COMMAND.COM Linuxos "megfelelője";
   * elfogadod, hogy ez nem egy teljes ismertető. További és jóval teljesebb
     leírások találhatók Matt Welsh ``Linux Installation and Getting
     Started'' és/vagy Larry Greenfield ``Linux User Guide'' (
     ftp://sunsite.unc.edu:/pub/Linux/docs/LDP/) könyvében.

1.2 Igen, ez az! Mesélj még...!

Installáltad a Linuxot a számítógépeden. Adtál magadnak egy azonosítót, (ha
nem ez a helyzet, akkor gépeld be most, hogy adduser) és a Linux fut a
gépeden. Éppen most ütötted be az azonosítódat és a jelszavadat, és most
nézed a képernyőt hogy: "Na és most mi van?"

Ne ess kétségebe! Már majdnem kész vagy, hogy ugyanazokat a dolgokat
megtehesd amiket annak idején a DOS-szal megtehettél, és még sokkal többet!
Ha DOS-t futtatnál Linux helyett akkor a következő dolgokat tehetnéd:

   * programok futtatása, fájlok létrehozása, másolása, nézegetése, törlése,
     nyomtatása, átnevezése;
   * könyvtárak létrehozása, törlése, listázása és váltás közötük: MD, RD,
     DIR, CD.
   * lemezek formázása, fájlok másolása lemezekről és lemezekre;
   * az AUTOEXEC.BAT és a CONFIG.SYS fájljaid javítgatása;
   * saját .BAT fájlok és/vagy QBasic programok írása;
   * a kimaradt 1%.

Örömmel veheted tudomásul, hogy ezek a feladatok megvalósíthatók Linuxban
is, méghozzá a DOS-hoz hasonló módon. A DOS alatt az átlagos felhasználó az
elérhető mintegy 100+ parancsból igen keveset használ: ugyanez elmondható -
egy bizonyos pontig - a Linuxra is.

Néhány dolog következik amire szeretnék rámutatni mielőtt tovább mennénk.

   * Elsőként is, hogyan lépj ki a Linux-ból? Ha karakteres képernyőt látsz,
     akkor nyomd le a CTRL-ALT-DEL billentyűket, majd várj addig, amíg a
     rendszer rendbeteszi a belső dolgait és végül jelzi Neked, hogy minden
     rendben. Ekkor már nyugodtan kikapcsolhatod. Ha az X Window System
     alatt dolgozol, akkor elsőként CTRL-ALT-BACKSPACE, majd a CTRL-ALT-DEL
     billentyűket nyomd le. Soha ne reseteld vagy kapcsolt ki a PC-t
     közvetlenül Linux alatt, mivel megsérülhet a fájlrendszer!
   * A DOS-tól eltérően a Linux beépített védelmi rendszerrel rendelkezik.
     Mikor bekapcsolod a gépet és elindítod a Linuxot, akkor be kell
     jelelentkezned, hogy a rendszer számára felismerhetővé tedd magad:
     mindez azért van, mert a Unix egy többfelhasználós rendszer. Az átlag
     felhasználó igazából nem birtokolja a rendszert: a bejelentkezése ideje
     alatt a rendszer feletti hatalmat az a felhasználó birtokolja, aki a
     "root" azonosítóval rendelkezik. (Ezek az emberek a
     rendszeradminisztrátorok. Ha a saját gépeden dolgozol, akkor Te vagy a
     "root".) A fájlokhoz és a könyvtárakhoz hozzáférési engedélyek
     rendelhetők (lásd a Hozzáférési engedélyek fejezetet) és ezért néhányuk
     el sem érhető az átlag felhasználó számára. Ezzel szemben a DOS
     megengedi, hogy a merevlemezed egész tartalmát egy mozdulattal
     letöröld.
   * Érezd magad felbátorítva, hogy kísérletezz, játsz, probálkozz magad is,
     egészen biztos, hogy nem teszel kárt semmiben. Kaphatsz segítséget, ha
     a promt (általában a $ jel a promt, illetve # a "root" promtja) mögé
     begépeled:

          $ help

     (ez segítséget ad a bash-ról), vagy információt szerezhetsz egy-egy
     utasításról a

          $ man utasítás

     paranccsal, ami ha installáltad a "man" kézikönyv oldalait, akkor
     behívja a kézikönyv utasítás-hoz kapcsolódó oldalát. Próbálkozhatsz még
     az

          $ apropos utasítás
          $ whatis utasítás

     parancsokkal is. Kilépéshez üss 'q'-t!
   * A Unix-ok erejének és a rugalmasságának egyik kulcsa azon egyszerű
     fogalmakból adódik, mint a csövek (pipe) és az átírányítás. Ezek Unix
     alatt sokkal hatékonyabbak, mint DOS alatt. Több egyszerű parancs
     összefűzve egészen összetett feladatok megoldására is képes. Használd
     majd őket!
   * Konvenciók: A <...> jelölés azt mutatja, hogy valamit meg kell adnod,
     míg a [...] jelölés jelzi, hogy valami opcionális (nem feltétlenül kell
     megadni). Például a

          $ tar -tf <file.tar> [> redir_file]

     utasításban a file.tar fájlt mindenképpen meg kell adni, amíg az
     átirányítás a redir_file fájlba opcionális.
   * A továbbiakban az "O.K.U." jelölés azt jelenti, hogy: 'Olvass a
     Kézikönyvben Utána' légyszíves! OKUlásodra lesz! ;-)

1.3 Türelmetleneknek

Gyorsan bele akarsz vágni a dolgok közepébe? Akkor nézd meg ezt a
táblázatot!

     DOS                     Linux               Megjegyzés
     -------------------------------------------------------------------------

     BACKUP              tar -Mcvf device dir/   teljesen különböző
     CD dirname\         cd dirname/             majdnem ugyanaz a szintaxis
     COPY file1 file2    cp file1 file2          úgyszintén
     DEL file            rm file                 vigyázat, nincs undelete! (*)
     DELTREE dirname     rm -R dirname/          úgyszintén
     DIR                 ls                      nem egészen ugyanaz
     EDIT file           vi file                 nem hiszem, hogy tetszeni fog
                         emacs file              ez jobb
                         jstar file              mint a dos-os edit
     FORMAT              fdformat,
                         mount, umount           egészen más szintaxis
     HELP command        man command             hasonló filozőfia
     MD dirname          mkdir dirname           majdnem ugyanaz a szintaxis
     MOVE file1 file2    mv file1 file2          úgyszintén
     NUL                 /dev/null               úgyszintén
     PRINT file          lpr file                úgyszintén
     PRN                 /dev/lp0,
                         /dev/lp1                úgyszintén
     RD dirname          rmdir dirname           majdnem ugyanaz a szintaxis
     REN file1 file2     mv file1 file2          nem több fájlra
     RESTORE             tar -Mxpvf device       eltérő szintaxis
     TYPE file           less file               sokkal jobb
     WIN                 startx                  ég és föld! ;-)

(*) Az Ext2fs Undeletion HOWTO-ban több módszer is fel van sorolva a
véletlen törlés ellen, továbbá egy eljárást is ismertet a szerző, amivel
törölt fájlokat tudunk visszaállítani, ha az még nem írodott felül. A kernel
hamarosan közvetlenül is támogatni fogja az "undelete"-et.

Ha többet szeretnél tudni a fenti táblázatnál, akkor olvasd el a következő
fejezeteket.

----------------------------------------------------------------------------
----------------------------------------------------------------------------

2. Fájlok és programok

2.1 Fájlok: előzetes megjegyzések

A Linux fájlrendszerrel dolgozik, ami azt jelenti, hogy a "könyvtárak és a
benne lévő fájlok struktúrája" nagyon hasonló a DOS-oséhoz. Minden fájlnak
adott szabályokhoz illeszkedő neve van, a fájlokat könyvtárakban tárolják,
néhányuk végrehajtható, néhányuk speciális kapcsolókat is igényel ill.
megenged. Sőt használhatsz wildcard karaktereket, átirányítást, csöveket.
Csak néhány kisebb különbség van.

   * DOS alatt a fájlneveknek úgynevezett 8.3 alakja van pl.: NOTENOUG.TXT.
     Linux alatt jobban megoldott. Ha a Linuxot egy olyan fájlrendszerrel
     (nem szükséges, hogy tudd pontosan mi is ez most) installálod mint az
     ext2, vagy az umsdos, akkor hosszabb neveket is használhatsz (egészen
     255 karakterig), több ponttal a névben. Például,
     Ez.egy_IGEN.hosszú.Fájlnév. Kérlek vedd észre, hogy mind kisbetűket és
     mind nagybetűket is használtam. Valójában ...
   * A kis-, és nagybetűket megkülönböztetjük a nevekben. Így a
     FÁJLNÉV.tar.gz és a fájlnév.tar.gz nevek két külőnböző fájlt jelölnek.
     Ugyanez igaz a parancsokkal kapcsolatban is. Ha az ls parancsot kiadod
     (ez ugyanaz mint a DOS-ban a DIR) akkor könyvtáradban található fájlok
     listáját kapod, míg ha az LS parancsot adod ki, akkor egy hibaüzenetet.
   * Nincs olyan kötelező kiterjesztés a parancs ill. program fájloknak mint
     a .COM és a .EXE , vagy a .BAT a batch-fájloknak. A végrehajtható
     fájlokat egy * különbözteti meg a fájlnév végén ha az ls -F paranccsal
     listáztattad ki. Például:

          $ ls -F
          levél_Józsinak  Cindy.jpg  cjpg*  Ez_egy_dir/  első_scriptem*

     A cjpg* és az első_scriptem* fájlok végrehajthatók - "programok". DOS
     alatt a .BAK végződés a másolat (backup) fájlokat jelölik; a Linuxban
     az ilyen típusú fájlok tilde (~) karakterre végződnek. Továbbá, ha egy
     fájlnevet pottal kezdesz akkor ez a fájl rejtett fájlként lesz
     nyilvántartva. Például: az .én.egy.rejtett.fájl.vagyok fájl nem fog
     megjelenni az ls parancs után.
   * A DOS alatt a program opciókat /opció formában adhatók meg, mig
     Linuxban a megfelelő forma a -opció. Például: dir /s parancs
     megfelelője ls -R. Megjegyzem sok DOS program - mint a PKZIP vagy az
     ARJ - Unix stílusú opciókat használ.

Most már akár a DOS-os parancsok Linuxos megfelelői fejezetre ugorhatsz, de
a helyedben én tovább olvasnék.

2.2 Szimbolikus linkek

A Unix rendelkezik egy fájltípussal, ami nem létezik DOS alatt: ez a
szimbolikus link. Tekintehetjük ezt úgy, mint egy fájlra vagy könyvtárra
mutató pointert és használhatjuk őket az eredeti fájl vagy könyvtár helyett.
Ez hasonló a Win95 shortcut-jaihoz. Példa szimbolikus linkre a /usr/X11,
mely a /usr/X11R6-ra mutat, a /dev/modem, mely vagy a /dev/cua0-ra vagy a
/dev/cua1-re mutat.

Szimbolikus link létrehozása:

     $ ln -s <fájl_vagy_könyvtár> <linknév>

Példa:

     $ ln -s /usr/doc/g77/DOC g77manual.txt

Mostantól g77manual.txt-ként is hivatkozhatsz a /usr/doc/g77/DOC fájlra.

2.3 Hozzáférési engedélyek és tulajdonjogok

A DOS-os fájlok és könyvtárak a következő tulajdonságokkal (attribútumokkal)
rendelkezhetnek: A (archív), H (rejtett), R (csak olvasható), és S (rendszer
fájl). Csupán a H-nak és az R-nek van értelme Linux alatt. A rejtett fájlok
egy ponttal kezdődnek, míg az R megfelelőjét a lentiekben tárgyaljuk.

Unix alatt egy fájl rendelkezik hozzáférési engedélyekkel és tulajdonossal,
aki egy ``csoporthoz'' tartozik. Itt egy példa:

     $ ls -l /bin/ls
     -rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Az első mező tartalmazza a /bin/ls fájl hozzáférési engedélyeit, amely a
root-hoz illetve a bin csoporthoz tartozik. A többi információtól most
eltekintve (lásd őket például Matt Welsh elöbb említett könyvében), jegyezd
meg, hogy a -rwxr-xr-x a következőket jelenti (balról jobbra):

- a fájl típusa (- = közönséges fájl, d = könyvtár, l = link, stb); rwx a
fájl tulajdonoának a hozzáférési engedélyei (olvasható, írható, futtatható);
r-x a fájl tulajdonos csoportjának az engedélyei (olvasható, futtatható);
(most nem fogom részletezni a csoport fogalmát, egyelőre nyugodtan
meglehetsz nélküle, ha kezdő vagy ;-), végül a r-x az összes többi
felhasználó hozzáférési engedélyei (olvasható, futtatható).

Emiatt nem törölheted a /bin/ls fájlt, hacsak nem Te vagy a root: nincs
irási jogod, hogy ezt megtedd. Egy fájl hozzáférési engedélyeinek a
megváltoztatása a következőképpen lehetséges:

     $ chmod <kiXengedély> <fájl>

ahol a `ki' u (user, azaz a tulajdonos), g (group, azaz a csoport), és/vagy
o (other, vagyis egyéb) lehet, az `X' vagy + vagy -, az `engedély' lehet r
(read, azaz olvasható), w (write, azaz írható), vagy x (execute, vagyis
futtatható). Példák:

     $ chmod u+x fájl

A tulajdonos számára futtathatóvá válik a fájl. Rövidebben: chmod +x fájl.
Ez bárki számára futtathatóvá állítja. A

     $ chmod go-wx fájl

eltávolítja a fájlról az írási és a futtatási engedélyeket mindenki számára
kivétel csupán a fájl a tulajdonosa. A

     $ chmod ugo+rwx fájl

mindenkinek olvasási, írási és futtatási jogot ad. Végül, de nem utolsó
sorban a

     # chmod +s fájl

parancs `setuid' vagyis `suid'-ossá teszi a fájl, ami azt jelenti, hogy
mindenki a fájl tulajdonosának a privilégiumával futtathatja a fájlt.

Egy rövidebb mód az engedélyek beállítására számokkal történhet: rwxr-xr-x
kifejezhető a 755-tel (minden betű megfelel egy bit-nek: így a --- 0, a --x
1, a -w- 2, a -wx 3, stb). Elsőre nehéznek tűnik, de kis gyakorlattal meg
fogod érteni a mögötte lévő dolgot.

A root -- lévén ő a rendszergazda -- bárki fájljainak a hozzáférési
engedélyeit meg tudja változtatni.

2.4 DOS-os parancsok Linuxos megfelelői

A baloldalon a DOS parancsok láthatók, míg jobboldalon a Linuxos
megfelelője.

     COPY:           cp
     DEL:            rm
     MOVE:           mv
     REN:            mv
     TYPE:           more, less, cat

Átirányító és csőszervező karakterek: < > >> |

Meta karakterek: * ?

     nul:            /dev/null
     prn, lpt1:      /dev/lp0 vagy /dev/lp1; lpr

- PÉLDÁK -

     DOS                                     Linux
     ---------------------------------------------------------------------

     C:\GUIDO>copy joe.txt joe.doc           $ cp joe.txt joe.doc
     C:\GUIDO>copy *.* total                 $ cat * > total
     C:\GUIDO>copy fractals.doc prn          $ lpr fractals.doc
     C:\GUIDO>del temp                       $ rm temp
     C:\GUIDO>del *.bak                      $ rm *~
     C:\GUIDO>move paper.txt tmp\            $ mv paper.txt tmp/
     C:\GUIDO>ren paper.txt paper.asc        $ mv paper.txt paper.asc
     C:\GUIDO>print letter.txt               $ lpr letter.txt
     C:\GUIDO>type letter.txt                $ more letter.txt
     C:\GUIDO>type letter.txt                $ less letter.txt
     C:\GUIDO>type letter.txt > nul          $ cat letter.txt > /dev/null
             n/a                             $ more *.txt *.asc
             n/a                             $ cat section*.txt | less

Megjegyzések:

   * A * karakter alkalmazása a Linux alatt elegánsabb. A * kifejezéshez
     minden fájl illeszkedik kivéve a rejtett fájlokat. A rejtett fájlok a
     .* kifejezéshez illeszkednek. A *.* kifejezéshez csak azok a fájlok
     illeszkednek amelyeknek a közepén '.' található. A p*a kifejezésre mind
     a papa, mind a pipa, míg a *g* kifejezésre mind a `régi' és mind a
     `rugók' szavak illeszkednek.
   * Ha a more programot használod, akkor a <szóköz> billentyűt használd a
     lapozáshoz, és a 'q' vagy a CTRL-C billentyűt a kilépéshez. A less
     program sokkal jobban használható, s itt használhatod nyíl-billentyűket
     is, valamint a 'h' leütésére pedig előjön egy segítő képernyő.
   * Linuxban alapértelmezésben nincs UNDELETE, vagyis a kitörölt fájlokat
     nem tudod visszaállítani, így jól gondold meg mielőtt bármit is
     kitörölnél.
   * A DOS < > >> jeleihez képest pluszt jelent a 2> jel a hibaüzenetek
     (stderr) átirányítására. Továbbá a 2>&1 a szabványos hibakimenetet
     (stderr) a szabványos kimenetre (stdout), míg a 1>&2 a szabványos
     kimenetet a szabványos hibakimenetre irányítja.
   * A Linux rendelkezik még egy wildcard karakterrel a [] jellel.
     Használata: [abc]* kifejezés azokhoz a fájlnevekhez illeszkedik amelyek
     a, b vagy c betűvel kezdődnek. A *[I-N,1,2,3] kifejezés azokhoz a
     fájlnevekhez illeszkedik amelyek I, J, K, L, M, N, 1, 2, 3 betűvel
     végződnek.
   * Nincs olyan parancs mint a DOS alatti RENAME, így a mv *.xxx *.yyy nem
     fog működni.
   * Használj cp -i-t és mv -i-t, ha azt szeretnéd, hogy a rendszer szóljon,
     ha valamit felül készül írni.

2.5 Programok futtatása: többfeladatúság

Ha futtatni akarsz egy programot akkor a DOS-hoz hasonlóan itt is a program
nevét kell begépelned. Ha a könyvtár amiben a programot eltároltad
megtalálható a PATH környezeti változóban, a program el fog indulni.
Kivétel: a DOS-tól eltérően a Linux alatt az aktuális könyvtárban lévő
program is csak akkor fog elindulni, ha a könyvtár benne van a PATH-ban.
Tipp: ilyen esetben, ha a programod prog akkor azt gépeld, hogy ./prog.

Így néz ki egy tipikus parancssor:

     $ parancs -op1 -op2 ... -opn par1 par2 ... parn < input > output

ahol -op1, -op2, ..., -opn a parancs opciói, par1, ..., parn pedig a
paraméterei. Egy sorban több parancsot is begépelhetsz:

     $ command1 ; command2 ; ... ; commandn

Ennyit a programok futtatásáról, bár könnyű a következő lépés megtétele is.
Az egyik legfontosabb indok ami a Linux használata mellett szól, hogy a
Linux képes a multitaskingra azaz több program (ezentúl processzek)
párhuzamos (egyidejű) futtatására. Elindíthatsz processzeket a háttérben, és
amíg ezek futnak, Te tovább folytathatod a munkádat. Sőt, a Linux lehetővé
teszi, hogy egyidejűleg többször bejelentkezve különböző virtuális
terminálokon is dolgozz: ez olyan mintha több számítógéped lenne egyszerre
amin dolgozhatsz!

   * Az 1-től 6-ig terjedő virtuális terminálokra való átlépés:

          $ ALT-F1 ... ALT-F6

   * Egy új session indítása az aktuális virtuális terminálon:

          $ su - <loginname>

     Például:

          $ su - root

     Ez igen hasznos, ha például mount-olni akarsz egy Floppy-t, mivel
     alapértelmezésben ezt csak a root teheti meg.
   * A session befejezése:

          $ exit

     Ha lennének leállított 'job'-jaid (lásd később), akkor előbb kapsz egy
     figyelmeztető üzenetet.
   * Egy program előtérben indítása:

          $ program [-opciók] [paraméterek] [< input] [> output]

   * A háttérben indítás egy sorvégi '&' jellel lehetséges:

          $ program [-opciók] [paraméterek] [< input] [> output] &
          [1] 123

     A burok (shell) a processzt egy munka számmal (például ez fent [1];) és
     a processz azonosítőjával (PID) azonosítja (példánkban ez 123).
   * Megnézheted, hány processz fut összesen a rendszerben:

          $ ps -a

   * Processz lelövése:

          $ kill <PID>

     Elképzelhető, hogy le kell lőnöd egy processzt, ha nem tudod, hogyan
     kell leállítani, kilépni belőle... ;-). Néha, a processzt a következők
     egyikével lőheted le:

          $ kill -15 <PID>
          $ kill -9 <PID>

     Egy processzt neve alapján nem egyértelmű lelőni, mert több is futhat
     belőle, különbőző PID-ek alatt. De ha csak egy fut vagy valóban mindet
     ki akarod lőni, akkor így is megteheted:

          $ killall processznév

     Az eddigieken kívül a burok program lehetővé teszi, hogy a processzeket
     megállítsd, vagy ideiglenesen megszakítsd, a háttérbe irányítsd vagy
     éppen egy háttérben futó programot tégy előtérben futó programmá. Ebben
     a környezetben a processzeket "job"-okként emlegetik.
   * Megnézheted, hány 'job'-od fut:

          $ jobs

     Itt a 'job'-ok a shell által meghatározott számokkal vannak azonosítva,
     nem pedig a PID számmal.
   * Előtérben futó processz megállítása (nem mindig lehetséges, mert
     letiltható):

          $ CTRL-C

   * Előtérben futó processz felfüggesztése:

          $ CTRL-Z

   * Egy felfüggesztett processz háttérbe küldése ('job' lesz belőle):

          $ bg <job>

   * Egy 'job' előtérbe hozása:

          $ fg <job>

   * Job lelövése:

          $ kill <%job>

     ahol <job> a shell által a processzhez rendelt szám; 1, 2, 3, ...
     Ezeknek az utasításoknak a használatával egyszerre tudsz egy lemezt
     megformázni, fájlok egy csoportját tömöríteni, kitömöríteni archívált
     fájlokat, és még mindig rendelkezésedre áll egy prompt, tovább
     dolgozhatsz zavartalanul! Próbáld ugyanezt megtenni DOS alatt! És
     próbáld ki ugyanezt Windows alatt is, csak hogy lásd a teljesítménybeli
     különbséget a két megvalósítás között!

2.6 Programok futtatása távoli gépeken

Egy távoli gépen történő programfuttatáshoz elsőként be kell jelentkezned
oda, s ehhez tudnod kell a gép nevét vagy IP számát.

     $ telnet tavoli.gep.hu

Bejelentkezés után elindíthatod kedvenc programod. Gondolom szükségtelen
megemlítenem, hogy a másik gépen is kell rendelkezned felhasználói
azonosítóval.

Ha van X Window rendszered, akkor akár X-es alkalmazásokat is futtathatsz a
távoli gépen oly módon, hogy az a Te képernyődön jelenik meg. Legyen például
a távoli gép a tavoli.gep.hu, míg a Te géped az itteni.linux.hu. Egy a
távoli gépen levő X-es program futtatása az itteni.linux.hu-n a
következőképpen lehetséges:

   * indítsd el az X-et (startx), majd azon belül egy xterm-et, vagy egy
     azzal ekvivalens terminál emulátort (rxvt, color-xterm, nxterm, ...),
     majd gépeld be:

          $ xhost +tavoli.gep.hu
          $ telnet tavoli.gep.hu

   * bejelentkezés után:

          remote:$ DISPLAY=itteni.linux.hu:0.0
          remote:$ program &

     (A DISPLAY ... sor helyett lehet, hogy a következőt kell begépelned:
     setenv DISPLAY itteni.linux.hu:0.0. Ez a távoli gépen lévő buroktól
     (shell-től) függ.

És láss csodát! A távoli gépen elindul a program, ami majd a Te képernyődön
fog megjelenni. Azonban ne nagyon próbáld ezt PPP alatt, mivel meglehetősen
lassú lesz (a vonal sávszélességétől függ).

----------------------------------------------------------------------------
----------------------------------------------------------------------------

3. Könyvtárak használata

3.1 Könyvtárak: előzetes megjegyzések

Láttuk már a különbséget a DOS és Linux alatti fájlok között. A könyvtárak
esetén a DOS alatt a gyökérkönyvtár a \ jel, míg a Linux (Unix-ok) alatt a /
jel. Hasonlóan az egymásba ágyazott könyvtárak esetén az elválasztó jel a
DOS alatt a \ míg a Linux alatt a / karakter. Példa egy fájlnévre az
útvonallal együtt:

     DOS:    C:\PAPERS\GEOLOGY\MID_EOC.TEX
     Linux:  /home/guido/papers/geology/mid_eocene.tex

Szokásosan a .. jel a szülőkönyvtár, míg a . az aktuális könyvtárat jelöli.
Emlékeztetlek, hogy a rendszer nem engedi a cd, rmdir vagy mkdir parancsokat
korlátlanul minden könyvtárra alkalmazni. Minden felhasználó a saját
könyvtárából indul, melyet 'home' könyvtárnak hívnak, és a
rendszeradminisztrátor hoz létre a számodra. Például a saját számítógépemen
a home könyvtáram a /home/guido.

3.2 Könyvtárakhoz történő hozzáférés

A könyvtárak szintén rendelkeznek hozzáférési engedélyekkel. Amit a "
Hozzáférési engedélyek és tulajdonjogok" című fejezetben láttunk, az itt is
érvényes: tulajdonos, csoport, mások (user, group és other). Egy könyvtárnál
a rx azt jelenti, hogy cd-vel be tudsz lépni oda, míg ha a w is meg van
adva, akkor törölni is tudsz abban a könyvtárban (a törlendő fálj
engedélyeinek megfelelően természetesen), vagy akár magát a könyvtárat.

Például annak megelőzésére, hogy mások és a csoportod tagjai a
/home/pisti/text könyvtáradban nézelődjenek ezt a parancsot kell kiadnod:

     $ chmod og-rwx /home/pisti/text

3.3 Parancsok fordítása DOS-ról Linuxra

     DIR:            ls, find, du
     CD:             cd, pwd
     MD:             mkdir
     RD:             rmdir
     DELTREE:        rm -R
     MOVE:           mv

- PÉLDÁK -

     DOS                                     Linux
     ---------------------------------------------------------------------

     C:\GUIDO>dir                            $ ls
     C:\GUIDO>dir file.txt                   $ ls file.txt
     C:\GUIDO>dir *.h *.c                    $ ls *.h *.c
     C:\GUIDO>dir/p                          $ ls | more
     C:\GUIDO>dir/a                          $ ls -l
     C:\GUIDO>dir *.tmp /s                   $ find / -name "*.tmp"
     C:\GUIDO>cd                             $ pwd
             n/a - lásd a megjegyzést        $ cd
             hasonlóképp                     $ cd ~
             hasonlóképp                     $ cd ~/temp
     C:\GUIDO>cd \other                      $ cd /other
     C:\GUIDO>cd ..\temp\trash               $ cd ../temp/trash
     C:\GUIDO>md newprogs                    $ mkdir newprogs
     C:\GUIDO>move prog ..                   $ mv prog ..
     C:\GUIDO>md \progs\turbo                $ mkdir /progs/turbo
     C:\GUIDO>deltree temp\trash             $ rm -R temp/trash
     C:\GUIDO>rd newprogs                    $ rmdir newprogs
     C:\GUIDO>rd \progs\turbo                $ rmdir /progs/turbo

Megjegyzések:

  1. Az 'rmdir' használatakor a törlendő könyvtárnak üresnek kell lennie.
     Egy könyvtár és a teljes tartalmának a törléséhez használd az 'rm -R'
     parancsot (saját felelőségre!).
  2. A '~' karakter a `home' (otthon) könyvtárad rövidítése. A 'cd' vagy a
     'cd ~' parancsok a home könyvtáradba visznek bárhol is legyél. Ennek
     megfelelően a 'cd ~/tmp' pedig a /home/home_könyvtárad/tmp könyvtárba
     juttat.
  3. 'cd -' úgymond ``visszacsinálja'' az utolsó 'cd' parancsot (azaz a
     korábbi könyvtárba lép vissza).

----------------------------------------------------------------------------
----------------------------------------------------------------------------

4. Hajlékony-, merevlemezek és további hasonlók

4.1 Eszközmeghajtók használata

Bár valószínűleg még soha nem gondolkoztál el rajta de a DOS FORMAT A:
parancsa sokkal több munkát végez el mint ami előszörre tűnik. Valójában, ha
kiadsz egy FORMAT parancsot, akkor az a következőket végzi el: fizikailag
formázza a lemezt, létrehozza az A:\ könyvtárat (vagyis létrehoz egy
fájlrendszert), elérhetővé teszi a felhasználó részére a lemezt
('mount'-olja a lemezt).

Ez a három lépés Linux alatt elkülönítve jelenik meg. Lehetséges
hajlékonylemezeket DOS-os formátumban is használni, bár más és jobb
formátumok is elérhetők -- például a DOS formátum nem enged meg hosszú
fájlneveket. Íme álljon itt, hogyan kell egy lemezt előkészíteni (szükséged
lesz root-ként ténykedned):

   * Egy szabványos 1,44 Mb-os hajlékonylemez formázása (A: meghajtón):

          # fdformat /dev/fd0H1440

   * Fájlrendszer létrehozása:

          # mkfs -t ext2 -c /dev/fd0H1440

     vagy

          # mformat a:

     amely egy MS-DOS fájlrendszert hoz létre. Használat előtt elérhetővé
     kell tenned a lemezt:
   * A hajlékonylemez 'mount'-olása:

          # mount -t ext2 /dev/fd0 /mnt

     vagy

          # mount -t msdos /dev/fd0 /mnt

     Most már használhatod a lemezen lévő fájlokat, dolgozhatsz velük. Mikor
     befejezted a munkát, mielőtt kivennéd a lemezt a meghajtóból, el kell
     engedned (unmount). FONTOS!
   * A lemez elengedése:

          # umount /mnt

Most már kiveheted a lemezt a meghajtóból. Természetesen az fdformat, és
mkfs parancsokat csak a formázatlan lemezekre kell kiadni, a már korábban
használtakra nem. Ha a B: meghajtót akarod használni, akkor az fd1H1440 és
az fd1 formákat kell használnod a példában szereplő fd01440 és fd0 formák
helyett.

Minden amit eddig használtál az A: és B: meghajtóval kapcsolatban azt most a
/mnt-tal használhatod. Példák:

     DOS                                     Linux
     ---------------------------------------------------------------------

     C:\GUIDO>dir a:                         $ ls /mnt
     C:\GUIDO>copy a:*.*                     $ cp /mnt/* /docs/temp
     C:\GUIDO>copy *.zip a:                  $ cp *.zip /mnt/zip
     C:\GUIDO>a:                             $ cd /mnt
     A:>_                                    /mnt/$ _

Szükségtelen mondani, hogy ami érvényes a lemezekre érvényes bármely
meghajtóra is, amit csak el tudsz képzelni; például ha egy másik
merevlemezt, vagy esetleg egy CD0ROM meghajtót akarsz elérni. Vess egy
pillantást a meghajtók listájára a /dev könyvtárban. Álljon itt, hogyan kell
egy CD-ROM-ot elérni:

     # mount -t iso9660 /dev/cdrom /mnt

Ez volt a "hivatalos" módja, hogy egy lemezt elérhetővé tegyünk, de van még
trükk raktáron. Mivel kissé idegesítő lehet, hogy minden egyes alkalommal
'root'-tá kell vállnunk, hogy egy hajlékonylemezt vagy CD-ROM-ot elérhetővé
tegyünk, ezért ez minden felhasználónak megengedhető a következő módon:

   * root-ként hozd létre a /mnt/a, /mnt/a: és a /mnt/cdrom könyvtárakat:
   * tedd a /etc/fstab fájlba az alábbi sorokat:

          /dev/cdrom      /mnt/cdrom  iso9660 ro,user,noauto   0       0
          /dev/fd0        /mnt/a:     msdos   user,noauto      0       0
          /dev/fd0        /mnt/a      ext2    user,noauto      0       0

Mostantól egy DOS-os floppy, egy ext2 formátumú floppy illetve a CD-ROM
'mount'-olása így is történhet:

     $ mount /mnt/a:
     $ mount /mnt/a
     $ mount /mnt/cdrom

A /mnt/a, /mnt/a: és a /mnt/cdrom könyvtár minden felhasználó által
elérhető. Én úgy találtam, hogy nem root-ként a /mnt/a-ba való íráshoz
szükségesek a következők közvetlenül a floppy előkészítése után:

     # mount /mnt/a
     # chmod 777 /mnt/a
     # umount /mnt/a

Kérlek jól jegyezd meg, hogy ha bárki 'mount'-olhatja a lemezeket, az egy
nagyobb biztonsági lyuk.

4.2 Mentések

Most, hogy már tudod, hogy kell a floppy-t és az egyéb eszközöket kezelni,
lássuk, hogyan készíthetsz mentéseket. Több szoftver is létezik, amelyek
segítik ezt megvalósítani, de a legegyszerűbb módja annak, hogy egy
többkötetes mentést végezz a következő (persze root-ként):

     # tar -M -cvf /dev/fd0H1440 /mentendo_konyvtar

Előtte bizonyosodj meg arról, hogy a hajlékonylemezek már meg vannak
formázva és rendelkezel kellő mennyiségű üres lemezzel. A mentés
visszatöltéséhez helyezd be az első floppy-t a meghajtóba és és írd a
parancssorba a következőket:

     # tar -M -xpvf /dev/fd0H1440

----------------------------------------------------------------------------
----------------------------------------------------------------------------

5. A rendszer konfigurálása

5.1 Rendszer inicializáló fájlok

A DOS alatt két fontos fájl van, az AUTOEXEC.BAT és a CONFIG.SYS amelyeket
az operációs rendszer a bootolás ideje alatt a rendszer inicializálására és
olyan rendszerváltozók beállítására használ mint például a PATH és a FILES,
illetve ahonnan további programokat vagy batch fájlokat is índíthat.

Linux alatt számos inicializáló fájl létezik és ezek között van néhány
amelyeket jobb ha nem bütykölgetsz amíg nem tudod, hogy pontosan mit is
csinálsz. Egyébként a legfontosabbakat el fogom mondani:

     FÁJLOK                     MEGJEGYZÉSEK

     /etc/inittab               Most még ne piszkáld!
     /etc/rc.d/*                Ezt se!

Ha csak arra van szükséged, hogy a PATH vagy más környezeti változót
beállítsd, vagy meg akarod változtatni a login után megjelenő üzeneteket,
vagy automatikusan el akarsz indítani egy programot a bejelentkezés után,
akkor a következő fájlokat ajánlom a figyelmedbe:

     FÁJLOK                     MEGJEGYZÉSEK

     /etc/issue                 beállítja a bejelentkezés előtti üzeneteket
     /etc/motd                  beállítja a bejelentkezés utáni üzeneteket
     /etc/profile               beállítja a PATH és egyéb változókat, stb.
     /etc/bashrc                álneveket és függvényeket állít be (lásd lent)
     /home/pisti/.bashrc        a környezeted álneveit és függvényeit állítja
     /home/pisti/.bash_profile  mint fent + indítja a programjaid
     /home/pisti/.profile       megcsinál mindent amit csak akarsz

Ha az utóbbi fájl létezik (megjegyzem, egy rejtett fájl), akkor a
bejelentkezés után a benne szereplő utasításokat végrehajtja a rendszer.

Például nézzük meg a következő .profile fájlt:

----------------------------------------------------------------------------

# Ez itt egy megjegyzés
echo Környezet:
printenv | less          # DOS alatti SET parancs megfelelője
alias d='ls -l'          # talán ezekből könnyebb lesz az alias megértése
alias up='cd ..'         # ami nem más mint egy rövidítés
echo "Figyelmeztetnélek, hogy a PATH változó: "$PATH
echo "A mai dátum: `date`"      # a 'date' parancs kimenetét írja ki
echo "Jó munkát kedves "$LOGNAME
# Az alábbi egy burok függvény
ctgz()                   # .tar.gz archív fájlok tartalmát listázza
{
  for file in $*
  do
    gzip -dc ${file} | tar tf -
  done
}
# a .profile fájl vége

----------------------------------------------------------------------------

Jól sejtetted, hogy a PATH és a LOGNAME környezeti változók. Nagyon sok van
még ezeken kívül (például a legtöbb programnak vannak saját környezeti
változói is), amelyekkel el lehet bibelődni.

5.2 Program inicializáló fájlok

A Linux alatt gyakorlatilag mindent amire csak szükséged lehet a kedvedre
alakíthatsz. A legtöbb programnak van egy vagy több inicializáló fájlja amit
állítgathatsz, gyakran .programnévrc néven a home könyvtáradban. Az elsők
amiket valószínűleg változtatni akarsz majd:

.inputrc: a bash használja billentyűkódok értelmezéséhez.

.xinitrc: a startx ez alapján inicializálja az X Window-t.

.fvwmrc: az fvwm ablakkezelő használja. Az alapértelmezett beállítás
/usr/lib/X11/fvwm/system.fvwmrc néven található meg.

.Xdefault: bármely X-es program használhatja.

Ezek mindegyikével és a társaival előbb-utóbb találkozni fogsz, O.K.U.!

----------------------------------------------------------------------------
----------------------------------------------------------------------------

6. Egy kis programozás

6.1 Szkriptek: .BAT fájlok Linuxon

Ha a .BAT fájlokat hosszú programsorok rövidítésére használtad (én sokszor),
akkor ezt megvalósíthatod a megfelelő "alias" sorok alkalmazásával a
profile, és a .profile fájlokban. De ha a .BAT fájljaid bonyolultabbak
voltak, akkor lefogadom, hogy egyszerűen imádni fogod a burok
programnyelvét: ez legalább olyan hatékony mint a Qbasic, ha nem
hatékonyabb. Változókat definiálhatsz, léteznek a while, for, case, if...
then... else struktúrák, és még számos lehetőséget nyújt. Jó alternativája
lehet egy "igazi" programnyelvnek.

Ha egy szkriptet - a DOS alatti .BAT fájl megfelelője - akarsz írni,
egyszerűen egy olyan szabványos ASCII fájlt kell írnod amely a parancsokat
tartalmazza, el kell mentened, és a következő paranccsal végrehajthatóvá
kell tenned: chmod +x <szkriptfájl> A végrehajtáshoz egyszerűen csak a nevét
kell begépelned.

Előre is figyelmeztetnélek, hogy a rendszer alapértelmezett szerkesztője, a
vi első látásra elég nehézkes és szinte biztosra veszem, hogy vacaknak fogod
találni. Nem fogom most itt elmagyarázni a műkődését, mivel még magam sem
tudtam átvergődni a szövevényein: Matt Welsh "Linux Installation... " című
művében a 109. oldalon nézhetsz ennek utána. Jobban teszed, ha beszerzel egy
másik editort mint például a joe nevűt, vagy az emacs X-es változatát. A
vi-ról álljon itt annyi, hogy:

   * ha szöveget akarsz bevinni, üss egy 'i'-t aztán vidd be a szöveget;
   * ha ki akarsz lépni mentés nélkül, üss <ESC>-t aztán 'q!'-t;
   * ha ki akarsz lépni mentéssel, üss <ESC>-t aztán 'wq'-t;

A linuxos szkriptek írásáról egy egész könyvet lehetne írni, így most nem
fogok a témában igazán elmélyedni, csak mutatok néhány remélhetőleg hasznos
példát, amiből aztán leszűrheted az alapvető szabályok egy részét.

----------------------------------------------------------------------------

#!/bin/sh
# sample.sh
# Én egy megjegyzés vagyok
# Ne változtasd meg az első sort - annak ott kell lennie!
echo "Ez a rendszer egy: `uname -a`" # a parancs kimenetét írja ki
echo "A program neve: $0"            # beépített változó
echo "A következő $# paramétert kaptam: "$*
echo "Az első paraméter: "$1
echo -n "Mi a neved? " ; read nev
echo Vedd észre a különbséget: "Szia $nev!" # a " használata idézetben
echo Vedd észre a különbséget: 'Szia $nev!' # a ' használata idézetben
DIRS=0 ; FILES=0
for file in `ls .` ; do
    if [ -d ${file} ] ; then           # ha a fájl könyvtár
        DIRS=`expr $DIRS + 1`            # DIRS = DIRS + 1
    elif [ -f ${file} ] ; then
        FILES=`expr $FILES + 1`
    fi
    case ${file} in
        *.gif|*jpg) echo "${file}: grafikus fájl" ;;
        *.txt|*.tex) echo "${file}: szöveges fájl" ;;
        *.c|*.f|*.for) echo "${file}: forráskód" ;;
        *) echo "${file}: általános fájl" ;;
    esac
done
echo "Összesen ${DIRS} könyvtárat és ${FILES} fájlt találtam."
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then                # az utolsó parancs kilépési kódja
    echo "Nem találtam a következő fájlt: ZxY--!!!WKW "
fi
echo "Uhhh, ... írd be, hogy 'man bash', ha több információt szeretnél!"

----------------------------------------------------------------------------

6.2 C

A Unixok alatt a rendszer nyelve a C, akár szereted akár nem. Persze egy
csomó másik nyelv is elérhető (FORTRAN, Pascal, Lisp, Basic, Perl, awk,
...). Feltételezve, hogy ismered a C-t, álljon itt néhány segítő tanács
azoknak, akiket eddig a Turbo C++ vagy valamelyik DOS-os testvére
kényeztetett. A Linux C fordítóját gcc-nek hívják, és alapértelmezésben
híján van minden villogó, fütyülő kütyünek, ami általában velejárója a
DOS-os hasonmásának: nincs Integrált Fejlesztői Környezet (IDE), on-line
help, beépített debugger, stb. A gcc egy parancssorból hívható fordító,
nagyon hatékony és erőteljes. Ha le szeretnéd fordítani a szokásos hello.c
programodat, akkor a

     $ gcc hello.c

sor a fordítás végeredményeképpen egy végrehjtható a.out fájlt fog
készíteni. Ha ettől az elnevezéstől el akarsz térni, akkor a

     $ gcc -o hello hello.c

sor a hello névre fogja elkeresztelni a futtatható fájlt. (Világos, hogy nem
célszerű az a.out fájlban hagyni a kész műved, mert a következő fordítás
alkalmával felülíródik). Ha szeretnél egy könyvtárat szerkeszteni a
programodba, akkor egy sor végi -l<libnev> opcó oldja meg ezt a feladatot.
Például, ha a matematikai könyvtárat szerkeszted be:

     $ gcc -o mathprog mathprog.c -lm

(A -l<libname> opció arra ösztönzi a gcc-t, hogy a /usr/lib/lib<libname>.a
könyvtárat szerkessze be a programunkba. Így az -lm opció a /usr/lib/libm.a)
könyvtárat szerkeszti be.

Ezek a parancsok elegendőek egy kis program esetén, de ha a programod számos
forrásból áll össze, akkor szükséged lesz a make segédprogramra. Tegyük fel,
hogy írtál egy kifejezés elemzőt: a forrásfájl parser.c és két #include
fájlja van, parser.h és xy.h. Ezután szeretnéd egy calc.c nevű programban
használni a parser.c függvényeit, amely viszont includolja a parser.h fájlt.
Nos, mit kell ekkor tenned, ha a calc.c fájlt akarod fordítani?

Egy úgynevezett Makefile-t kell írnod, amely leírja a fordító számára a
forrásfájlok közötti összefüggéseket. A példánkban ez a következőképpen néz
ki:

----------------------------------------------------------------------------

# Ez a Makefile a calc.c fordítását végzi
# Üss <TAB>-ot a megfelelő pozíciókban!

calc: calc.o parser.o
<TAB>gcc -o calc calc.o parser.o -lm
# calc két object fájltól függ: calc.o és parser.o

calc.o: calc.c parser.h
<TAB>gcc -c calc.c
# calc.o két forrásfájltól függ

parser.o:  parser.c parser.h xy.h
<TAB>gcc -c parser.c
# parser.o három forrásfájltól függ

# A Makefile vége

----------------------------------------------------------------------------

Ezt a fájlt Makefile néven mentsd ki, és futtatsd a make parancsot:

     $ make

Egy másik lehetőséget jelent, hogy calc.mak néven mented el a fenti fájlt,
és

     $ make -f calc.mak

sorral végzed a fordítást. És persze O.K.U.

Továbbá ne feledd, hogy bármikor leírást kaphatsz a C függgvényekről, a man
lapok segítségével. Például:

     $ man 3 printf

Rengeteg könyvtár van, amiket használhatsz. Valószínű az elsőként
használandók között szerepel az ncurses és az svgalib, amik a szöveges
illetve a grafikus képernyő kezelését valósítják meg. Ha kellően bátornak
érzed magad az X programozáshoz, akkor beszerezheted az XForms (
ftp://bloch.phys.uwm.edu/pub/xforms) és/vagy az MGUI (
http://www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index.htm), könyvtárakat,
amik jelentősen megkönnyítik az X programozást. Továbbá, ha nem tudsz
meglenni a Borland kinézetű integrált fejlesztői környezet nélkül, akkor
szerezd be az xwpe programot a következő helyről
ftp://sunsite.unc.edu:/pub/Linux/apps/editors/. Valószínű kedvelni fogod.

----------------------------------------------------------------------------
----------------------------------------------------------------------------

7. A maradék 1%

7.1 Virtuális Memória

Annak ellenére hogy a Linux már 1 megabájt RAM-mal is képes futni, minél
több memóriád van annál jobb. Az X Window például nem fog a gépeden futni,
ha nincs legalább 8 mega memóriád. Ha például további virtuális memóriát
szeretnél definiálni, akkor root-ként begépelve a

     # dd if=/dev/zero of=/swapfile bs=1024 count=8192
     # mkswap /swapfile 8192
     # sync
     # swapon /swapfile

sorok további 8 mega virtuális memóriát bocsátanak rendelkezésedre. Az
utolsó sort szerkeszd be az /etc/rc.d/rc.local fájlba is hogy a swapfájl a
következő belépéskor is elérhető legyen, vagy pedig tedd a lenti sort az
/etc/fstab fájlba.

     /swapfile   swap   swap   defaults

7.2 A tar és gzip programok használata

A Unix alatt van néhány széles körben használt program fájlok tömörítésére
és archíválására. A tar program archíválja a fájlokat de nem tömöríti (Linux
alatt a '-z' opcióval tömöríti is ;-). A

     $ tar -cvf <archive_name.tar> <file> [file...]

sor egy új archív fájlt készít. Ha egy archív fájlt szeretnénk kicsomagolni,
a

     $ tar -xpvf <archive_name.tar> [file...]

sorral tehetjük meg. Ha az archív fájl tartalmára vagy kíváncsi, akkor a

     $ tar -tf <archive_name.tar> | less

sorral nézegetheted. Ha tömöríteni szeretnél akkor a compress és gzip
programok állnak rendelkezésedre, bár a compress elavult, és jobb ha nem
használod. A megfelelő parancsok

     $ compress <file>
     $ gzip <file>

egy .Z (compress) vagy .gz (gzip) kiterjesztésű tömörített fájlt készítenek.
Ezek a programok egyszerre csak egy fájlt képesek tömöríteni. A
kitömörítéshez használd a

     $ compress -d <file.Z>
     $ gzip -d <file.gz>

sorokat és O.K.U.

Az arj, zip és unzip segédprogramok szintén elérhetők. A .tar.gz vagy .tgz
(tar programmal archívált, majd gzip-pel tömörített fájl) ugyanolyan
gyakoriak a Unix világban mint a .ZIP fájlok a DOS alatt. A .tar.gz
tartalmát a következő sorral nézheted meg:

     $ gzip -dc <file.tar.gz> | tar tf - | less

7.3 Programok telepítése

Elsőként is: a programok telepítése a root feladata. Néhány Linuxos
programot mint .tar.gz vagy .tgz archív fájlt hozzák forgalomba speciálisan
előkészítve, így a / (gyökér) könyvtárból egyszerűen kitömöríthetők a

     # gzip -dc <file.tar.gz> | tar xvf -

paranccsal. A fájlok a megfelelő könyvtárba kerülnek a kitömörítés során,
amelyek ha nem léteznek akkor a folyamat automatikusan létrehozza őket. A
legtöbb disztribúció (pl: Debian, Redhat, Caldera, Slackware) ezenfelül
felkínál speciális "csomagoló" programokat is (pl: dpkg, rpm, pkgtool), amik
felhasználó-barát felületet, szolgaltatásokat biztosítanak.

A többi .tgz fájlt nem érdemes a / könyvtárból telepíteni, ezek rendszerint
egy "programnév" nevű könyvtárat és a könyvtárban további
fájlokat/könyvtárakat tartalmaznak. Egy követendő szabály, hogy ezeket a
programokat /usr/local/ könyvtárból érdemes telepíteni. És feltetlen olvasd
el a telepítéshez tartozó dokumentációt (általában a README, INSTALL nevű
fájlok). Emellett néhányuk mint C vagy C++ forrás kerül forgalomba, amit le
kell fordítanod, hogy futtatható kódot kapj. A legtöbb esetben elegendő a
make parancs kiadása. Természetesen ehhez szükséged van egy gcc fordítóra,
amit minden Linux disztribúció tartalmaz.

7.4 Tippek amik nékül nem boldogulsz

Parancs kiegészítés: ha a parancs gépelése közben megnyomod a <TAB>
billentyűt akkor az automatikusan kiegészül. Például ha van egy
igen_hosszú_fájlneved amit le akarsz fordítani, akkor elegendő begépelni
mondjuk, hogy gcc igenthi<TAB>, a fájlnév kiegészül. Ha több olyan fájlod
van ami hasonlóan kezdődik, akkor elegendően sok karakter begépelésével
elkerülheted a többértelműséget.

Lapozás: Nyomj SHIFT + Page Up billentyűket és ekkor a képernyőn tudsz
visszafelé lapozni néhány oldalt, amennyit a video memóriád enged.

Képernyő frissítés (reset): Előfordulhat hogy egy bináris fájl cat vagy more
paranccsal való megjelenítése során tele lesz a képernyő mindenféle
szeméttel. Gépeld be vakon a reset parancsot ami rendbe teszi a dolgokat,
vagy a következő karaktersorozat is segít: echo CTRL-V ESC c RETURN.

Szöveg másolása: konzolon lásd alább, X alatt a jobb egérgombbal
kijelölheted a szöveget (továbbá pl. általában 2 klikk a szót, három a
teljes sort kijelöli), majd a középső (vagy a 2 szélső) egérgombbal
átmásolhatod oda, ahova akarod. Valamint létezik egy xclipboard nevű program
is (csak szövegekre), de ne tévesszen meg a lassú válaszideje.

Egér használata: telepítsd a gpm programot, ami egy egér meghajtó konzolhoz.
Hasonlóan használhatod, mint fent, s akár a virtuális konzolok között is
használhatod.

Üzenetek a kerneltől: nézd meg root-ként a /var/adm/messages vagy a
/var/log/messages fájlt, hogy miket üzent a kernel, beleértve a
rendszerindulást is.

7.5 Hasznos programok és parancsok

Ez a lista az általam kedvelt programok gyűjteménye természetesen. Először
is, hogy hol találhatók. (Felteszem hogy tudtok az Interneten keresni,
tudjátok az ftp-t, archie-t használni.) A három legfontosabb cím:
sunsite.unc.edu, tsx-11.mit.edu, and nic.funet.fi Légyszíves használjátok a
legközelebbi tükrözést.

Jöjjenek akkor a progik:

   * at: a megadott időben hajtja végre a kívánt programot.
   * awk: egy egyszerű és mégis sokat tudó programnyelv szöveges fájlok
     manipulására. Például legyen a data.dat egy több oszlopos adatfájl,
     ekkor a

          $ awk '$2 ~ "abc" {print $1, "\t", $4}' data.dat

     kilistázza az 1. és a 4. mezőt minden olyan sorból, amelyekben a 2.
     mező tartalmazza az 'abc' mintát.
   * delete-undelete: pontosan azt csinálják amit a nevük is jelent.
   * df: információkat szolgáltat a merevlemezről.
   * dosemu': segítségével futtathatsz számos DOS-os programot, köztük a
     Windows 3.x-et is.
   * file <filename>: megmondja hogy mi a fájl típusa: ASCII szöveg,
     végrehajtható, archív, stb.
   * find: (lásd még a ' Parancsok fordítása DOS-ról Linuxra' fejezetet) az
     egyik leghasznosabb parancs. Használható különböző feltételeknek
     megfelelő fájlok megkeresésére és ezeken valamely eljárás
     végrehajtására. Az általános használata:

          $ find <könyvtár> <kifejezés>

     ahol <kifejezés> valamilyen keresési feltételt és eljárást tartalmaz.
     Példák:

          $ find . -type l -exec ls -l {} \;

     megkeresi azokat a fájlokat melyek szimbolikus linkeket jelölnek, és
     kiírja, hogy mire mutatnak.

          $ find / -name "*.old" -ok rm {} \;

     megkeresi azokat a fájlokat amik illeszkednek a mintára és törli őket,
     miután először megerősítést kér a művelet végrehajtása előtt.

          $ find . -perm +111

     megkeresi azokat a fájlokat, melyek engedélye 111 (futtatható).

          $ find . -user root

     megkeresi a root fájljait. És még rengeteg lehetőség van - O.K.U.
   * gnuplot: egy nagyszerű program tudományos ábrák készítéséhez.
   * grep: adott mintára illeszkedő szavakat keres meg fájlokban. Például:

          $ grep -l "geology" *.text

     azokat a .text fájlokat listázza, amelyek tartalmazzák a "kukac" szót.
     A zgrep változata gzip-el tömörített fájlokon dolhozik. O.K.U.
   * gzexe: végrehajtható fájlokat tömörít olyan módon, hogy azok
     végrehajthatók maradnak.
   * joe: egy remek editor. Elindíthatod a jstar parnccsal, és ekkor
     ugyanazokat a billentyűkombinációkat használhatod mint a WordStar-ban,
     és leszármazottjaiban beleértve a DOS editort is.
   * less: valószínűleg a legjobb szöveg megjelenítő.
   * lpr: <fájl>: kinyomtatja a fájlt a háttérben. A nyomtatási sor
     státuszának ellenőrzésére használd a lpq parancsot, míg ebből fájlokat
     az lprm paranccsal tudsz törölni.
   * mc: egy igen hasznos és sokoldalú fájlkezelő;
   * pine: egy remek levelező program.
   * script <script_file>: mindent, ami a képernyőn előtűnik a script_file
     fájlba másol. egészen addig, amíg ki nem adod a exit parancsot. Hasznos
     nyomkövetéshez.
   * sudo: lehetőséget biztosít a felhasználók részére, hogy olyan
     parancsokat hajthassanak végre, amit egyébként csak a root tehet meg
     (például formatálni, és 'mount'-olni egy lemezt). O.K.U.
   * uname -a: a rendszeredről nyújt pár információt.
   * zcat és zless: a gzip-pel tömörített fájlok listázására használható
     anélkül, hogy kitömörítenéd őket. Például:

          $ zless textfile.gz
          $ zcat textfile.gz | lpr

   * A következő parancsok szintén jól jöhetnek több esetben is: bc, cal,
     chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split,
     strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write,
     xargs, znew. O.K.U.

7.6 Gyakori kiterjesztések és ezekkel kapcsolatos programok

Valószínűleg már egy csomó fájlkiterjesztéssel találkoztál. Az egzotikus
fajtákon kívül (pl. font fájlok stb.) íme egy lista, hogy mi micsoda.

   * .1 ... .8: "kézikönyv" lapok. A man parancs használja.
   * .arj: arj-vel készült archív fájl. unarj-vel ki tudod őket csomagolni.
   * .dvi: TeX (lásd lent) által létrehozott fájl. xdvi-vel nézheted,
     dvips-sel .ps fájllá alakíthatod.
   * .gif: grafikus fájl. Megnézheted például xv-vel, xpaint-tel, gimp-pel,
     ImageMagick-kel.
   * .gz: gzip-pel készült archív fájl.
   * .info: info fájl (egyfajta alternatív man lap). Az info program
     használja.
   * .jpg, .jpeg: grafikus fájl. A fentiekkel szintén megnézheted vagy a
     seejpeg-gel.
   * .lsm: Linux Software Map fájl. Ez egy egyszerű ASCII fájl, ami a hozzá
     tartozó programcsomag leírását tartalmazza.
   * .ps: postscript fájl. A gs és opcionálisan a gv programmal
     nézegetheted.
   * .tgz, .tar.gz: tar-ral készült archív fájl amit aztán a gzip
     tömörített.
   * .tex: text fájl ami a TeX szövegszerkesztő bemenete. A TeX egy igen
     sokoldalú "betűszedő" program. Szerezd meg, sok helyen elérhető!
   * .texi: texinfo fájl. A texinfo parancs használja.
   * .xbm, .xpm, .xwd: szintén grafikus fájlok, a fenti grafikus
     programokkal használhatók.
   * .Z: compress-szel készített archív fájl.
   * .zip: zip-pel előállított archív fájl. Szerezd be a zip-et és az
     unzip-et.

----------------------------------------------------------------------------
----------------------------------------------------------------------------

8. Vége, egyelőre

Gratulálok! Megismerkedtél egy kicsit a Unix-szal, s készen állsz már arra,
hogy érdemi munkát is végez. Ne felejtsd, hogy a rendszerrel kapcsolatos
tudásod még elég korlátozott és számíts arra, hogy csak nagyobb gyakorlat
megszerzése után érzed magad igazán otthon. De fogadok, hogy az itt leírtak
is elegendők ahhoz, hogy a kezdeti lépéseket megtedd.

Biztos vagyok abban, hogy élvezni fogod a Linux használatát és egyre többet
fogsz majd tudni róla -- mindenki ezt teszi. Szintén fogadni mernék, hogy
soha nem térsz vissza a DOS-hoz! Remélem sikerült magam megértetni, s az itt
leírtak hasznára vállnak a 3 vagy 4 olvasóm számára.

8.1 Copyright

Hacsak másként nincs rögzítve, a Linux HOWTO dokumentumok copyright-ja a
megfelelő szerzőt illeti. A Linux HOWTO dokumentumok szabadon másolhatók és
terjeszthetők, bármely fizikai vagy elektronkus hordozó által, ha a
copyright és az engedély szövegét minden másolaton megőrzik. Üzleti célú
terjesztés megengedett és támogatott, de gyomatékosan ajánlott, hogy a
terjesztő lépjen kapcsolatba a szerzővel a terjesztés előtt, a dolgok
naprakészségének biztosítása végett.

A Linux HOWTO dokumentumok módosított változatai a változatlan másolatokkal
megegyező feltételek alapján másolhatók és terjeszthetők, ha a módosított
változatot is az ezzel az engedéllyel megegyező feltételekkel terjesztik. A
fordítások is a ``módosított változat'' kategóriájába tartoznak.

Röviden, célunk ezen információkat minél szélesebb körben elterjeszteni a
jelenlegi copyright-ot megőrizve és szeretnénk, ha bármiféle további
terjesztés előtt értesítenének bennünket.

Kérdések felmerülése esetén kérjük lépjen kapcsolatba Greg Hankins-szel a
Linux HOWTO dokumentációk koordinátorával a gregh@sunsite.unc.edu email
címen keresztül.

A ``DOS-ról Linuxra HOGYAN'' szerzője Guido Gonzato
guido@ibogfs.df.unibo.it. Sok köszönet Matt Welsh-nek, a ``Linux
Installation and Getting Started'' című könyv, Ian Jackson-nak, a ``Linux
Frequently Asked Questions with Answers'' című dokumentum, Giuseppe
Zanetti-nek, a ``Linux'' című könyv szerzőjének és mindazoknak akik
javaslatokat küldtek nekem, továbbá külön köszönöm Linus Torvalds-nak és a
GNU-nak, akik a Linuxot adták nekünk. Magyar fordítás Danyi András,
danyiand@biocom.bio.u-szeged.hu.

A dokumentumhoz nincs garancia. Sok energiát fektettem abban, hogy olyan
pontos legyek, amennyire csak tőlem telik, de használd az itt leírtakat a
saját felelőségedre. Semmi körülmény között nem vállalok felelősséget
bárminemű kárért, ami ezen munkából kifolyólag adódik.

Örömmel várom a visszajelzéseket! Bármilyen igény, javaslat, nem tetszés
kifejezése esetén bátran írj nekem!

Élvezd a Linuxot és az életet:

Guido =8-)