Linux Alapok

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

Á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
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
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, így
lehet®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 projekthez


hozta létre Dennis Ritchie.

A trösztellenes törvény
értelmében az AT&T
nem forgalmazhatott
szoftvereket, ezért a
nyelvet és az operációs
rendszert ingyenessé
Thompson és Ritchie Brian Kernighan
tették.
Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 3 / 37
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 és


ennek keretében megalakult a Free Software Foundation (FSF) és
elkezdték kifejleszteni egy ingyenes környezet programcsomagjait.

Ehhez tartozik például az egyik


legelterjedtebb fordítóprogram-
csomag: a GCC (GNU Com-
piler Collection).

Richard Stallman

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 4 / 37
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 el


egy 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.

A nevet barátja, Ari Lemmke adta, így nevezte


el Linus FTP könyvtárát.

A Linux tulajdonképpen magát a kernelt és


egy sor, ahhoz közeli (részben FSF-fejlesztés¶)
programot jelent.

Linus Torvalds

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 5 / 37
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
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 version
B: f® átdolgozás  major revision
C: kisebb átdolgozás  minor revision
D: 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
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 a


rendszer 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 a
rendszer szolgáltatásait és minden további folyamat rajta keresztül
indul el,
dinamikus könyvtárak: a Linux lehet®séget ad dinamikusan csatolt
kö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 grakus felü-
letek is.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 8 / 37
A Linux felépítése Az X11

Az X11

A Linuxokon használt grakus 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 grakus felületek
létrehozását biztosítja architektúra-független módon.
Alacsony szint¶ hálózati protokollja segítségével egy keretrendszert
biztosít grakus programok létrehozására.

Manapság általában az X-re


épül®, komplexebb gra-
kus könyvtárakat (Desktop
Environment) használnak
(GNOME, KDE, XFCE, stb).

A GNOME Shell 3.2


Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 9 / 37
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ódja


a 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 azokat
tartalmazó csomagok listázására,
automatikusan kezeli a csomagok frissítéseit,
képes a rendszer karbantartására  pl. nem használt, elavult csomagok
eltávolítására.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 10 / 37
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


(grakus 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
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®knek


a használatát egyszer¶sítik le, kényelmes felhasználói felületet adva
a csomagok kezeléséhez. Ilyen a dpkg-alapú apt, vagy az RPM-en
alapuló YUM és zypper.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 12 / 37
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
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
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ába


vannak 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 meg


az 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
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.

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

Az aktuális könyvtárra való hivatkozás általában elhagyható, tehát a ./-rel


kezd®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
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ájl
neve é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
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 deniá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 a
nekik 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
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, akkor


létrehozhatunk ott fájlokat, vagy törölhetünk a már létez®k közül
ané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
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ési
jogokat.
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
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ális


verziója is, ahol jogokat tudunk hozzáadni, illetve elvenni az egyes
csoportok é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
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
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ásik
felhaszná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
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 (super
user 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
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észleteivel
itt nem foglalkozunk.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 25 / 37
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-nel
lehet 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
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örnyezeti
vá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 az
aktuá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
A Linux programozása

A Linux programozása

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 28 / 37
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®l


kapjá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
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 a


má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, amelyekben
megtalá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
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 hajtsa
végre.

Ez a Linuxokon használt legelterjedtebb parancs-környezetben, a


Bourne Again Shell (BASH) alatt a következ®képpen történik:

# !/ bin / bash
ls | grep ab

Az els® sor kötelez®en: #!/bin/bash


Az 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 útvonal
pedig annak a programnak a neve, ami képes értelmezni a fájl tartalmát.
Ezt követ®en tetsz®leges UNIX programot futtathatunk, illetve
lé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
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
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 és


a 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 ki


vá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
A Linux programozása Változók

Változók III.

Vannak ún. környezeti változók, amelyeknek az értékét bármikor


felhaszná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
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 a


kifejezés helyére.

Nagy G., Timár A. (BME EET) A Linux alapjai 2014. 11. 06. 35 / 37
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 van


visszatérési értékük, ami hagyományosan 0, ha nincs hiba, különben
egy 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
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

You might also like