Unix/Linux alapok Operációs rendszerek I. készítette: Bringye Zsolt, Kozlovszky Miklós, Póserné Oláh Valéria, Windisch Gergely
A Unix Minigépekre született, onnan terjedt a mainframe és a workstation, illetve a PC világ felé (70-es évek elejétől) Alapvetően az egyszerűség jellemezte A kernel majdnem a kezdetektől C-ben íródott, ez forradalmi volt A sokszínűség és inkompabilitás szinte az egész Unixtörténetet végigkíséri Sok Unix verzió: jó, mert verseny egységesség hiánya Szabványosítási törekvések, sokféle szabvány (a mit a lényeg, nem a hogyan) Kereskedelmileg meghatározó Unix verziók: Sun (oracle) /Solaris, HP/HP-UX, IBM/AIX Érdekesség: Mac OS X (BSD alapú) Többfeladatos, több felhasználós rendszer
A Linux A kezdetek - 90-es évek eleje A Unix és Windows rendszerek valós alternatíváját jelentő rendszerré vált A Linux nem Unix, de nagyon hasonló Működésben, programozási felületben Unix-like, de a belső felépítése sok szem-pontból eltérő A kernel nincs egyetlen cég kezében sem, fejlesztői közösség által fejlődik Sok szempontból úttörő megoldások, de találni benne a nagy Unix verziókhoz képest gyenge pontokat is (egyik ilyen volt a szálkezelés a 2.4- es kernelben, de ez a 2.6-ban jelentősen változott)
Linux (folyt.) A sokszínűség itt is jelen van! Legfőbb kommerciális verziók: RedHat és Suse Free verziók: Debian és holdudvara (debian alapú megoldások), Fedora (RedHat közeli) és SuSe ingyenes változata Live CD-k: telepítés nélkül kipróbálható Knoppix: http://www.knoppix.org/ (Debian GNU/Linux) Demolinux: http://www.demolinux.org/ (Mandrake) Fontos információ lelőhely: http://en.wikipedia.org/wiki/live_cd
Hasznos linkek http://www.hup.hu Hungarian Unix Portal http://www.kernel.org Linux kernel helye http://www.distrowatch.com Különböző disztribúciók összegyűjtve
Hol tudok gyakorolni? Linuxok letöltése: www.ubuntu.com, www.debian.org, www.slackware.com, www.suse.de, en.opensuse.org, www.distrowatch.com Winnie szerver kiss.tamas@nik.bmf.hu VMWARE Appliance: http://www.vmware.com/appliances/
Hol kapok segítséget? Internet: The Hungarian Unix Portal: http://hup.hu Linux Knowledge Base and Tutorial: http://www.linux-tutorial.info http://en.wikipedia.org/wiki/linux Linux Shell Scripting Tutorial: http://www.freeos.com/guides/lsst/ http://www.google.hu
A grafikus világ Disztribúciók RedHat Ubuntu Debian Slackware Mandrake Suse Nézzünk meg néhányat.
Linux alapok A Linux olyan, mint a Unix az API és a parancssor Unix kompatibilis A mi általunk megismert szinten nem jönnek még ki a különbségek - Úgysincs két egyforma Unix :( Mindegy, melyiket tesszük fel
Linux alapok (folyt.) Több felhasználós: nem uraljuk az egész gépet, csak egy session a miénk (egy időben lehet több felhasználó is) Munka kezdete előtt azonosítás. Alapban: felhasználói név + jelszó A rendszerhez való hozzáférés korlátozott és szabályozott (csak a miénkhez férjünk hozzá) Az egyszerű felhasználók a rendszert beállítani, változtatni ne tudják (az a többieket is érintené)!
A többfelhasználós működés miatt a szemlélet eltérő a klasszikus személyi számítógépektől: van a gép és vannak a terminálok (kiemelt terminál: konzol, bizonyos speciális menedzsment feladatokat csak erről lehet elvégezni) Karakteres (shell) és grafikus felület (X) Terjed a grafikus, de (még) a karakteres mindenre jó (sajnos vannak olyan rendszerek, ahol egyes tool-ok bizonyos funkciói már csak GUI-n érhetőek el) Jelenleg a terminál hozzáférés szinte kizáró-lag TCP/IP alapú, régen a karakteres eszközöknél (illetve konzoloknál néha ma is) az RS-232 volt a tipikus PC alapú desktop megoldások esetén a gép és a megjelenítés összeolvad, de a háttérben (működés) megmarad a fentebb említett különválasztás!
Root felhasználó Kell egy olyan szerep, amely mindenhez hozzáfér, mindent beállíthat - rendszergazda Unix-ban ez egy kitüntetett felhasználó, teljhatalommal (root) Nem lehet több rendszergazdai felhasználó, ami nem valós, illetve a feladatok sem oszthatók szét (részleges jogok) Több megoldás (pl. sudo), aktuális: RBAC (de ez még nem igazán terjedt el)
Indítás, bejelentkezés VirtualPC Debian (X nélküli) Azonosító: root / nik119
Parancssor (ismét) Ismét fekete képernyő jön A rendszer elérése - belépés a rendszerbe Local login (konzol vagy soros terminál) Távolról: telnet, ssh, putty (Windows ssh kliens) On-Line help: man inkább referencia, tanulásra nem igazán jó gyakorolni kell user: Debian:nik119 Parancsok who am i uname -a ls ls / man ls
Nézzünk körbe! Debian GNU/Linux 3.1 debian tty1 Last login: Mikor jelentkeztünk be, honnan 2.4.27-2-386: aktuálisan futó kernel több kernel is lehet a gépen Ez a virtuális gép csak konzol módban üzemel A fekete képernyő a konzol
Konzol A karakteres felület a konzol Több virtuális konzol van linuxban. Váltás közöttük: alt+f1 alt+f6 A parancs végrehajtó felület a bash shell tab billentyűvel parancskiegészítés mor[tab]: kiegészül morera cd /sbi[tab]: kiegészül cd /sbinre
Fájlok alapjai Fájlok létrehozása Pl: echo Hello > alma.txt ls ls -l (jogokat is kiírja) cat alma.txt (kiírja az alma.txt tartalmát) echo World >> alma.txt (hozzáfűzés) cat alma.txt echo Hello > alma.txt (felülír) cat alma.txt
Hol vagyunk, kik vagyunk? uname -a who who am i (whoami) w last ls ls /
Parancsok man : Manual kézikönyv Szinte minden parancsról kérhetünk segítséget vele man ls ls --help Parancs szerkezet parancsnév kapcsoló: - kapcsoló teljes neve: -- pl: ls -a == ls --all
Fájl alapok Minden fájl bájtfolyam Fájlokra nevükkel hivatkozunk Hosszú fájlnév engedélyezett Kiterjesztés nincs, pont lehet névben Fájlok hierarchikus struktúrában vannak Könyvtárak között / jel, nem \!!!
File alapok (2) echo Hello > alma.txt ls ls -l cat alma.txt echo Leo >> alma.txt cat alma.txt echo Hello Informatikus World > alma.txt cat alma.txt
touch korte.txt egy 0 hosszúságú állományt hoz létre, ha már létezik, a tartalmát nem törli csak a dátumot módosítja ls ls -l touch alma.txt cat alma.txt a tartalom nem változott ls -l az időpont módosult Joker karakterek: *: Bárhány karaktert helyettesít?: Egyetlen karaktert helyettesít
Állomány- és könyvtárnevek kep?: négybetűs nevek, a kep szóval kezdődnek, utolsó karakterük tetszőleges kep*: a kep szóval kezdődnek, amit bármi egyéb követhet (akár az üres szó is) *kep: a kep szóra végződnek, amit bármi egyéb megelőzhet (akár az üres szó is) kep[a12]: négybetűs, kep -el kezdődnek, és az utolsó karakterük A, 1 v. 2 kep[a-z0-9]: mint előbb, de az utolsó karakterük nagybetű v. számjegy kep[^a-z]: mint előbb, de az utolsó karakterük nem nagybetű kep[^a-z]*[23]: a kep szóval kezdődnek, amit egy nagybetűtől eltérő karakter követ, utána bármi állhat, az utolsó karakterük pedig 2 vagy 3
Filenév trükkök (1) echo Hallo > alma* echo Welt > almale echo Hi >almabor cat almale cat almabor cat alma* Escape karakter: '\' --> cat alma\*
Filenév trükkök (2) echo alma > aa echo korte > bb echo gyumolcs > 'aa bb' ls cat aa bb cat 'aa bb'
Filetartalom megjelenítés cat alma.txt cat /bin/cat Mi történt a konzollal? cat csak szöveges fájlok kiírására való, /usr/bin/cat futtatható, vezérlőkódokkal Tetszőleges file kiíratása: od od /bin/cat od -c /bin/cat (a cat parancs ASCII karakterekkel)
Filetípus meghatározása Kiterjesztés többnyire nem segít file parancs file /usr/bin/file Fájl header alapján dolgozik Próbáljuk átverni: cp /usr/bin/apt-get. (ld. később - tab!) file apt-get mv apt-get valami.mp3 file valami.mp3
Fileműveletek Törlés: rm rm apt-get rm valami.mp3 Másolás: cp cp alma.txt korte.txt ls Mozgatás: mv mv korte.txt barack.txt ls
Könyvtárstruktúra http://learnlinux.tsf.org.za/courses/build/fundamentals/fundamentals-all.html
Könyvtárak Fontosabb könyvtárak (disztribúciónként eltérhet) / : gyökér könyvtár - minden alapja /etc: konfigurációs állományok /bin: futtatható állományok (parancsok) /var: változó állományok : log, spool, mail /home: a felhasználók saját könyvtárai /usr/local: telepített alkalmazások fájljai
Könyvtárak /sbin: rendszergazda futtatandó fájljai /boot: rendszerindítással kapcsolatos /root: rendszergazda saját könyvtára /proc: rendszeradatok (dinamikus!)
Könyvtárak cwd: current working directory (aktuális könyvtár pwd parancs adja vissza ~: felhasználó saját könyvtára echo ~ /home/user (/root): ez az alapértelmezett könyvtár, a felhasználó ide írhat.
Könyvtárak Relatív címzés <--> abszolút címzés ls /etc pwd ls../../etc ls.. ls. Elérési út (PATH) echo $PATH
Könyvtárak Mozgás a könyvtárakban cd cd /etc cd etc cd ugrás a home könyvtárba cd ~ ugrás a home könyvtárba cd.. cd / ugrás egy szinttel feljebb ugrás a gyökérkönyvtárba
Könyvtárak létrehozás: mkdir mkdir gyumolcs touch gyumolcs/alma touch gyumolcs/korte ls -l gyumolcs ls -ld gyumolcs (csak könyvtár) törlés: rmdir
Rejtett fájlok Minden, ami '.' -tal kezdődik, rejtett touch narancs touch.narancs ls ls -a
-r (-R): általános kapcsoló, rekurzív működést tesz lehetővé pl: rm -R * : alkönyvárakon belül is letöröl mindent.
Átirányítások, speciális jelek &&: második parancs futtatása, ha az első sikeres volt : második parancs futtatása, ha az első sikertelen volt &: parancs indítása háttérben : parancs kimenetének átirányítása a következő parancs bemenetére
Gyakorlás Hozza létre a következő könyvtárstruktúrát: ~ konyvtar1 konyvtar2 konyvtar3 konyvtar11 konyvtar12 konyvtar21 konyvtar111 konyvtar22 konyvtar112 konyvtar113
Gyakorlás Minden könyvtáron belül hozzon létre egy file<szám> fájlt, ahol a <szám> helyén az aktuális könyvtár sorszáma álljon (pl: konyvtar131-ben file131)