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.4es 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 ◦
[email protected]
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
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
touch
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 .. ugrás egy szinttel feljebb cd / 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
konyvtar11
konyvtar12
konyvtar2
konyvtar3
konyvtar21 konyvtar22
konyvtar111 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)