bevezetés a linux operációs rendszer alapjaiba

37

Upload: others

Post on 23-Apr-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bevezetés a Linux operációs rendszer alapjaiba

Áramkörtervezés az absztrakciótól a realizációig BMEVIEEM371

Budapesti M¶szaki és Gazdaságtudományi Egyetem

Bevezetés a Linux operációs rendszer alapjaiba

Nagy Gergely, Dr. Timár András

Elektronikus Eszközök Tanszéke (BME)

2014. november 6.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 1 / 37

Page 2: Bevezetés a Linux operációs rendszer alapjaiba

A Linux története

A Linux története

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 2 / 37

Page 3: Bevezetés a Linux operációs rendszer alapjaiba

A Linux története A UNIX

A UNIX

A UNIX operációs rendszert az AT&T vállalat Bell laboratóriumá-ban készítette el Ken Thompson és Brian Kernighan 1969-ben.

Az els® operációs rendszer volt, amit nem egy konkrét gép as-sembly nyelvén fejlesztették, hanem egy magas szint¶ nyelven, ígylehet®vé vált a rendszer egyszer¶ portolása más architektúrákra.

A felhasznált magas szint¶ nyelv a C nyelv volt és ehhez a projekthezhozta létre Dennis Ritchie.

Thompson és Ritchie Brian Kernighan

A trösztellenes törvényértelmében az AT&Tnem forgalmazhatottszoftvereket, ezért anyelvet és az operációsrendszert ingyenessétették.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 3 / 37

Page 4: Bevezetés a Linux operációs rendszer alapjaiba

A Linux története A GNU-mozgalom

A GNU-mozgalom

Amikor az AT&T-t felosztották kisebb vállalatokra, azok már értéke-síthettek szoftvert és így zárttá tették a UNIX-ot.

Richard Matthew Stallman (rms) a GNU-kiáltványban (GNU is

Not Unix) 1983-ban meghirdetett egy szabad szoftver mozgalmat ésennek keretében megalakult a Free Software Foundation (FSF) éselkezdték kifejleszteni egy ingyenes környezet programcsomagjait.

Richard Stallman

Ehhez tartozik például az egyiklegelterjedtebb fordítóprogram-csomag: a GCC (GNU Com-piler Collection).

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 4 / 37

Page 5: Bevezetés a Linux operációs rendszer alapjaiba

A Linux története A Linux születése

A Linux születése

A GNU-mozgalom nagyon sok ingyenes programot készített el, de ma-gát az operációs rendszermagot (kernel) nem sikerült befejezni.

1991-ben Linus Torvalds a helsinki egyetem diákjaként készített elegy UNIX-klónt az IBM 386-os gépére és ezt megosztotta az interne-ten, bár nem gondolta, hogy bárkit is érdekelne.

Linus Torvalds

A nevet barátja, Ari Lemmke adta, így nevezteel Linus FTP könyvtárát.

A Linux tulajdonképpen magát a kernelt ésegy sor, ahhoz közeli (részben FSF-fejlesztés¶)programot jelent.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 5 / 37

Page 6: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése

A Linux felépítése

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 6 / 37

Page 7: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A Linux kernel

A Linux kernel

A Linux monolitikus kernellel rendelkezik, amelynek feladatai:

folyamatkezelés (process),fájlrendszer kezelése,perifériák elérése,hálózatkezelés.

Az eszközkezel®k (device driver) beépülhetnek a kernelbe, de modulá-risan is kapcsolódhatnak ahhoz.

A kernel számozásának alakja: A.B.C(.D):

A: f®verzió � kernel versionB: f® átdolgozás � major revisionC: kisebb átdolgozás � minor revisionD: hibajavítás, biztonsági frissítés � bug-�xes, security patches

A kernelt Linus felügyeletével folyamatosan fejlesztik � 2014. augusz-tusában a legfrisebb verzió: 3.16 (kibocsátás: 2014. 08. 03.)

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 7 / 37

Page 8: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A kernel feletti komponensek

A kernel feletti komponensek

A kernel fölött számos alacsony szint¶ komponens fut, amelyek arendszer legalapvet®bb funkcióit látják el:

bootloader: az els® program, ami a gép bekapcsolásakor betölt®dik,ez végzi a kernel betöltését a memóriába (pl. GRUB, LILO),init: a legels® folyamat (process), amit a kernel indít el � ® indítja arendszer szolgáltatásait és minden további folyamat rajta keresztülindul el,dinamikus könyvtárak: a Linux lehet®séget ad dinamikusan csatoltkönyvtárak használatára (SO � shared object), amelyek formátuma:ELF (Executable and Linkable Format),különböz® felhasználói felületek: léteznek szöveges és gra�kus felü-letek is.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 8 / 37

Page 9: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése Az X11

Az X11

A Linuxokon használt gra�kus felületek alapja az X Window Sys-tem, amelyet röviden, a jelenlegi verziószám alapján X11-nek is hív-nak.

A rendszert 1984-ben az MIT-n kezdték el fejleszteni.

Számítógép-hálózatokon m¶ködtetett, távoli gra�kus felületeklétrehozását biztosítja architektúra-független módon.

Alacsony szint¶ hálózati protokollja segítségével egy keretrendszertbiztosít gra�kus programok létrehozására.

A GNOME Shell 3.2

Manapság általában az X-reépül®, komplexebb gra�-kus könyvtárakat (DesktopEnvironment) használnak(GNOME, KDE, XFCE, stb).

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 9 / 37

Page 10: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A csomagkezel®k

A csomagkezel®k I.

A Linuxokra elérhet® programok kezelésének egy központosított módjaa csomagkezel® (package manager) használata.

Egy csomagkezel®:

képes egy program függ®ségeit (a futtatáshoz szükséges könyvtárak,egyéb programok) nyilvántartani,elvégzi egy program telepítését az azt tartalmazó csomagból,képes a hiányzó függ®ségek automatikus telepítésére vagy az azokattartalmazó csomagok listázására,automatikusan kezeli a csomagok frissítéseit,képes a rendszer karbantartására � pl. nem használt, elavult csomagokeltávolítására.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 10 / 37

Page 11: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A csomagkezel®k

A csomagkezel®k II.

A csomagkezel®k az interneten szabadon hozzáférhet® adatbázi-sok segítségével dolgoznak.

Segítségükkel egy program telepítése egy parancs kiadását jelenti(gra�kus felületen egy klikkelés).

Pl.

sudo apt-get install build-essential

feltelepít egy sor fejleszt®-programot (pl. a GCC C++ fordítóját).

A csomagkezel®k el®nyei:

nem kell egy program telepítésekor a függ®ségeket �kézzel� megkeresniés telepíteni,automatikus, egységes és biztonságos frissítési mechanizmust biztosíta-nak,a feltelepített csomagok listája elmentésével egyszer¶en és automatiku-san reprodukálható egy m¶köd® rendszer.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 11 / 37

Page 12: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A csomagkezel®k

A csomagkezel®k III.

Sokféle csomagkezel®-rendszer létezik:

dpkg: Debian Package Management System,RPM: eredetileg Red Hat Package Manager (ma: RPM Package Ma-nager),Pacman: az ArchLinux része.stb.

Léteznek olyan segédprogramok, amelyek ezeknek a csomagkezel®kneka használatát egyszer¶sítik le, kényelmes felhasználói felületet advaa csomagok kezeléséhez. Ilyen a dpkg-alapú apt, vagy az RPM-enalapuló YUM és zypper.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 12 / 37

Page 13: Bevezetés a Linux operációs rendszer alapjaiba

A Linux felépítése A disztribúciók

A disztribúciók

Sok cég állít össze teljes felhasználói élményt adó ún. disztribúciókat(distribution), amelyek általános felépítése a következ®:

friss Linux kernel,GNU programok,ablakozó környezet(ek) (GNOME, KDE, stb.),egyéb ingyenes programok,csomagkezel®.

Néhány híresebb disztribúció:

Ubuntu,Suse,Debian,Red Hat,Fedora,CentOS,Gentoo,UHU-linux (magyar).

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 13 / 37

Page 14: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata

A Linux m¶ködése és használata

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 14 / 37

Page 15: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Elérési út

Elérési út I.

A teljes fájl-szerkezet egy fa.

Nincsenek meghajtók, mint Windowsban � a �zikai meghajtók a fábavannak �felcsatolva� (mount).

A fa gyökere a gyökérkönyvtár, amelynek neve: /.

A könyvtárak egymástól is a / jellel vannak elválasztva � pl.

/usr/include/c++/4.6.3/

Abszolút elérési útvonal: / jellel kezd®dik, tehát a gyökért®l elin-dulva megadja egy könyvtár/fájl teljes elérését.

Relatív elérési útvonal: az aktuális könyvtártól kiindulva adja megaz elérést (nem kezd®dhet / jellel).

Fontos: a Linuxok mindenhol megkülönböztetik a kis- és nagybet¶ket!

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 15 / 37

Page 16: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Elérési út

Elérési út II.

A relatív elérési útak megadásában segít két speciális �könyvtárnév�:

.: a mindenkori aktuális könyvtárra hivatkozik,

..: az aktuális könyvtár �szül®jére� hivatkozik.

Pl.

./amoba

az aktuális könyvtárban lév® amoba nev¶ fájlra/könyvtárra hivatkozik.

A

../obj/utils/string.o

a szül®könyvtárban lév® obj könyvtáron belüli utils könyvtárbanlév® string.o fájlra hivatkozik.

Az aktuális könyvtárra való hivatkozás általában elhagyható, tehát a ./-relkezd®d® útvonalnevek e két karakter nélkül is ugyanazt jelentik � kivéve prog-ramok futtatásakor (ld. kés®bb).

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 16 / 37

Page 17: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Elérési út

Elérési út III.

Amikor a parancssorban egy elérési útvonalat adunk meg (pl. egy pa-rancs argumentumaként), akkor ha néhány bet¶ beírása után meg-nyomjuk a TAB billenty¶t, a környezet megpróbálja befejezni a ne-vet:

ha ez csak egyféleképp tehet® meg, akkor megteszi,ha több lehet®ség is van, akkor kiírja ezeket majd folytathatjuk a gépe-lést.

Pl. ha a könyvtárunk tartalmaz egy abc.txt és egy ablak.doc nev¶fájlt, akkor

a ./ab útvonalrészlet után TAB-ot nyomva kiíródik a fenti két fájlneve és folytathatjuk a gépelést,a ./abl után TAB-ot nyomva a környezet kiegészíti az útvonalat./ablak.doc-ra.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 17 / 37

Page 18: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Hozzáférési jogok

Hozzáférési jogok I.

A Linux többfelhasználós rendszer, így kritikus, hogy az egyes fájlok-hoz való hozzáférés szabályozott módon történjen.

Egy fájllal végezhet® m¶veletek:

olvasás (r),írás (w),futtatás (x).

Az egyes m¶veletkhez való jog aszerint de�niált, hogy �mennyire ál-lunk közel a fájlhoz� � a Linux három csoportba osztja a felhasználó-kat az egyes fájlokhoz való hozzáférés szerint:

tulajdonos (u),tulajdonoscsoport (g),más (o).

A tulajdonoscsoportok létrehozása leegyszer¶síti a felhasználók és anekik adott jogosultságok admininsztrálását egy nagy rendszerben.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 18 / 37

Page 19: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Hozzáférési jogok

Hozzáférési jogok II.

A fájlok esetén egyértelm¶, hogy a fenti három m¶velet mit jelent.

Könyvtárak esetén a hozzáférési jogok:

olvasás: a benne található állományok listázása,írás: fájlok létrehozása, létez® fájlok törlése,futtatás: a könyvtárba való belépés (munkakönyvtárrá tétel).

Ha például egy könyvtárra van írási jogunk, de nincs olvasási, akkorlétrehozhatunk ott fájlokat, vagy törölhetünk a már létez®k közülanélkül, hogy ki tudnánk listázni a könyvtár tartalmát.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 19 / 37

Page 20: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Hozzáférési jogok

Hozzáférési jogok III.

Egy fájl teljes hozzáférési táblázata egy kilencbites érték, ami a követ-kez®képpen alakul ki:

u g o

r w x r w x r w x

0 1 2 3 4 5 6 7 8

22 21 20 22 21 20 22 21 20

Egy hárombites szám pontosan egy oktális számjeggyel írható le �így három oktális számjeggyel szokták jellemezni a hozzáférésijogokat.Pl. a 764 azt jelenti, hogy

a tulajdonos olvashat, írhat, futtathat,a tulajdonoscsoport többi tagjai olvashatnak, írhatnak, de nem futtat-hatnak,a többi felhasználó pedig csak olvashat.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 20 / 37

Page 21: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Hozzáférési jogok

Hozzáférési jogok IV.

A hozzáférési jogokat a chmod paranccsal tudjuk megváltoztatni.

Pl.

chmod 731 valami.sh

hatására a valami.sh futtatási jogai a 731 oktális számmal kódoltértékre változnak.

A chmod parancsnak van egy sokkal olvashatóbb, inkrementálisverziója is, ahol jogokat tudunk hozzáadni, illetve elvenni az egyescsoportok és jogok bet¶jelei segítségével:

chmod u+x valami.sh

A fenti utasítással a valami.sh futtatását engedélyezzük a tulajdono-sának, míg a

chmod g-rw valami.sh

utasítással a tulajdonoscsoporttól elvettük az olvasási és írási jogokat.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 21 / 37

Page 22: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Hozzáférési jogok

Hozzáférési jogok V.

A chmod további alakjai:

minden adat megadása felhasználócsoportonként:

chmod u+r-w-x,g+r+w-x,o-r+w-x valami.sh

összes felhasználó jogainak megadása egyszerre:

chmod +x valami.sh

egy felhasználó jogainak megadása abszolút módon (nem inkre-mentálisan):

chmod u=rw valami.sh

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 22 / 37

Page 23: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Felhasználók azonosítása

Felhasználók azonosítása

A Linuxokon a felhasználókat egy felhasználónév és egy jelszó azo-nosítja.

A jelszó a passwd utasítással változtatható meg.

Minden felhasználónak van egy saját könyvtára (home), ahol a sze-mélyes dokumentumai találhatóak.

A felhasználói könyvtárak elérési útjai:

/home/timi/

/home/jozsi/

ahol timi és jozsi felhasználónevek.

A felhasználó saját könyvtárának van rövid neve: ∼, míg egy másikfelhasználó �home-jára� így hivatkozhatunk: ∼jozsi.

Tehát pl. a

~/Music/listen.pls

a saját home könyvtárunkon belül lév® Music könyvtárban lév®listen.pls fájl elérési útvonala.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 23 / 37

Page 24: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata A �szuper felhasználók�

A �szuper felhasználók�

A felhasználók között megkülönböztetett szerepe van az adminiszt-rátoroknak, akik a rendszer telepítését és karbantartását végzik.

Csak nekik van joguk:a rendszer m¶ködését érint® beállítások módosításához,a rendszer bels® leírófájljainak írásához,programok telepítéséhez,felhasználók adatainak kezeléséhez.

Az adminisztrátor neve super user vagy root.

Bizonyos normál felhasználóknak is lehetnek adminisztrátor ki-váltságai � ilyenkor a parancsok elé oda kell írni, hogy sudo (superuser do):

sudo apt-get install build-essential

majd meg kell adniuk a jelszavukat.

Linux alatt egy programnak ugyanazok a jogosultságai, mint an-nak a felhasználónak, aki indította ®ket.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 24 / 37

Page 25: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata M¶veletek könyvtárakkal

M¶veletek könyvtárakkal

Aktuális könyvtár elérési útvonala: pwd (present working direc-tory).

Könyvtárváltás: cd ~/Music/mp3

Könyvtár létrehozása: mkdir src

Könyvtár törlése: rm src (csak üres könyvtár törölhet®).

Könyvtár tartalmának listázása:Egyszer¶ lista: ls (vagy l)Részletes lista (típus, hozzáférési jogok, tulajdonos, létrehozási id®, ...):ls -l (vagy ll)Titkos fájlok (nevük .-tal kezd®dik) mutatása: ls -a (vagy la)Bizonyos fájlok listázása: ls *.mp3

A listázás sz¶kítése az ún. szabályos kifejezésekkel (?,*) történik. Ezek segít-ségével különböz® operátorok felhasználásával általános adhatóak meg karak-terminták, amiknek megfelel® fájlnevek kerülnek listázásra. Ennek részleteivelitt nem foglalkozunk.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 25 / 37

Page 26: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata M¶veletek fájlokkal

M¶veletek fájlokkal

Fájl létrehozása: touch fajl (létez® fájl esetén a legutóbbi hozzá-férés ideje (timestamp) frissül.

Fájl törlése: rm fajl

Fájl tartalmának kiírása: cat fajl

Hosszú fájl olvasása: less fajl

A fájlt tartalmát oldalakra törve nézegethetjük.Az oldalak közt pl. Up-Dn, PgUp-PgDn segítségével mozoghatunk.Kilépni a q paranccsal lehet.Keresni el®refelé a /keresett szöveg kifejezéssel lehet és az n-nellehet továbbkerestetni.Ugyanez visszafelé a ?keresett szöveg kifejezéssel történik.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 26 / 37

Page 27: Bevezetés a Linux operációs rendszer alapjaiba

A Linux m¶ködése és használata Programok futtatása

Programok futtatása

Ahhoz, hogy futtatni tudjunk egy fájlt, szükséges, hogy legyen futta-tási jogunk rá.

Ha beírjuk egy program nevét, akkor a Linux a $PATH nev¶ környezetiváltozóban felsorolt útvonalakon keresi a programot, amelynek alapér-telmezett tartalma pl.

/usr/local/sbin:/usr/local/bin:/usr/bin:/bin

ahol az egyes elérési utak kett®sponttal vannak elválasztva.

Az aktuális könyvtár nincs benne ebben a felsorolásban, ezért ha azaktuális könyvtárban található programot akarjuk futtatni, ak-kor teljes elérési útvonallal kell megadni a nevet:

/home/nagger/bin/amoba

Természetesen használhatjuk a rövid neveket, ezért ha a/home/nagger/bin könyvtárban vagyunk, akkor az itt található amoba

programot így is futtathatjuk:

./amoba

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 27 / 37

Page 28: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása

A Linux programozása

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 28 / 37

Page 29: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása Az I/O átirányítása

Az I/O átirányítása I.

A programok a bemenetüket alapértelmezetten a billenty¶zetr®lkapják, a kimenetük pedig a képerny®.

Megtehetjük azt, hogy a kimenet a képerny® helyett egy fájl le-gyen:

ls > lista.txt

Ez a fájl létrejön, ha nem létezett és a tartalma felülíródik, ha már létezik.

Fordítva is m¶ködik: a bemenet a billenty¶zet helyett egy fájl:

cat < szoveg.txt

A cat paraméterek nélkül indítva az alapértelmezett bemeneten érkez®karaktereket írja ki az alapértelmezett kimenetre.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 29 / 37

Page 30: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása Az I/O átirányítása

Az I/O átirányítása II.

Programok összeköthet®ek oly módon, hogy az egyik kimenete amásik bemenete legyen.

Ehhez az ún. cs®vezeték (pipe) karaktert használjuk: |

ls | grep ab

A grep parancs a bemenetén értkez® sorok közül azokat írja ki, amelyekbenmegtalálja a paraméterként kapott szövegmintát.

Tetsz®legesen hosszú cs®vezeték kialakítható, tehát akármennyi prog-ramot összekapcsolhatunk egymás után.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 30 / 37

Page 31: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása A bash fájlok

A bash fájlok

Ha ugyanazt a parancs-sorozatot sokszor kell kiadnunk, felmerül azötlet, hogy írjuk egy fájlba és azt a rendszer automatikusan hajtsavégre.

Ez a Linuxokon használt legelterjedtebb parancs-környezetben, aBourne Again Shell (BASH) alatt a következ®képpen történik:

#!/bin/bash

ls | grep ab

Az els® sor kötelez®en: #!/bin/bashAz els® két karakter (nevük: hash bang) azt mondja meg a futtató környe-zetnek, hogy egy szkriptfájlról van szó, az utánuk következ® elérési útvonalpedig annak a programnak a neve, ami képes értelmezni a fájl tartalmát.

Ezt követ®en tetsz®leges UNIX programot futtathatunk, illetveléteznek vezérlési szerkezetek is.

Ahhoz, hogy futtatni is tudjunk egy ilyen fájlt, rendelkeznünk kell fut-tatási jogokkal.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 31 / 37

Page 32: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása Változók

Változók I.

Bevezethetünk változókat egy értékadás segítségével:

felirat=" Menu: "

szoveg=nincsszokoz

Fontos, hogy az értékadás operátorának két oldalára nem kerülhet szóköz!

Amikor változók értékére hivatkozunk, a nevük elé egy $ jelet kellírni:

echo $szoveg

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 32 / 37

Page 33: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása Változók

Változók II.

Az echo utasítás segítségével tetsz®leges szöveget kiírathatunk ésa változókat ezekbe is behelyezhetjük:

echo "Helló világ: $szoveg"

Ha azt szeretnénk, hogy egy $-jeles szövegrészlet ne értékel®djön kiváltozónévként az echo után, akkor aposztrófot kell használnunk:

echo 'Helló világ: $szoveg '

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 33 / 37

Page 34: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása Változók

Változók III.

Vannak ún. környezeti változók, amelyeknek az értékét bármikorfelhasználhatjuk a programjainkban:

Név Jelentés

$HOME a felhasználó saját könyvtára (∼)$HOSTNAME a gép neve$LANG a felhasználó (op.rsz.) nyelve és szövegkódolása$PATH parancsok keresési útja$PWD aktuális munkakönyvtár$USER a felhasználó bejelentkezési neve$USERNAME a felhasználó teljes neve

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 34 / 37

Page 35: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása A for ciklus

A for ciklus

A for ciklussal listák elemein tudunk végigmenni:

for v in lista; do

ciklusmag (hivatkozás ciklusváltozóra: $v)

done

Lista bármilyen szóközzel elválasztott lista is lehet:

for v in `ls `; do

echo "Egy fájl: $v"

done

A `` szerepe: a `` közé tett utasítás eredménye helyettesít®dik akifejezés helyére.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 35 / 37

Page 36: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása A feltételes elágazás

A feltételes elágazás I.

A feltételes elágazás általános alakja:

if [ feltétel ]; then

igen ág

else

nem ág

fi

done

Az if után bármilyen UNIX-parancs kerülhet � ezeknek ugyanis vanvisszatérési értékük, ami hagyományosan 0, ha nincs hiba, különbenegy hibakód. Ez alapján a 0 felel meg a logikai IGAZ értéknek, min-den más HAMIS:

#!/bin/bash

if ls | grep alma; then

echo "alma létezik"

fi

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 36 / 37

Page 37: Bevezetés a Linux operációs rendszer alapjaiba

A Linux programozása A feltételes elágazás

A feltételes elágazás II.

A feltételes elágazáshoz adott tesztel® kifejezések is léteznek:

Név Jelentés

-d fájlnév könyvtár-e?-e fájlnév létezik?-f fájlnév szabványos fájl?-r fájlnév olvasható?-w fájlnév írható?-x fájlnév futtatható?

#!/bin/bash

if [ -e $file]; then

echo "$file létezik"

else

echo "$file nem létezik"

fi

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 37 / 37