DOS-ról Linuxra HOGYAN Guido Gonzato 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 [> 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 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 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 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 - 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 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 $ kill -9 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 * Egy 'job' előtérbe hozása: $ fg * Job lelövése: $ kill <%job> ahol 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 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 -t aztán 'q!'-t; * ha ki akarsz lépni mentéssel, üss -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 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 opció arra ösztönzi a gcc-t, hogy a /usr/lib/lib.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 -ot a megfelelő pozíciókban! calc: calc.o parser.o 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 gcc -c calc.c # calc.o két forrásfájltól függ parser.o: parser.c parser.h xy.h 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 [file...] sor egy új archív fájlt készít. Ha egy archív fájlt szeretnénk kicsomagolni, a $ tar -xpvf [file...] sorral tehetjük meg. Ha az archív fájl tartalmára vagy kíváncsi, akkor a $ tar -tf | 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 $ gzip 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 $ gzip -d 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 | 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 | 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 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, 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 : 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 ahol 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: : 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 : 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-)