Operációs rendszerek

gyakorlat | 2017 | levelező

A gyakorlat anyaga dátum szerint:

  1. 6. hét, 2017.03.17. (P) 10:00-12:00 IR223 [pdf,dat,touch.sh,01.sh,02.sh,03.sh]
    • Linux bevezetés: parancsok, parancsok szöveges fájlokra, csővezetékek, átirányítások, jogosultságkezelés, felhasználók kezelése, linkelés, környezeti változók
    • BASH script programozás: alapok, változók, paraméter kezelés, vezérlési szerkezetek
  2. 13. hét, 2017.05.05. (P) 12:00-14:00 IR224 [pdf,emailip.txt,regkif.txt, delim.dat,bocsanat.txt,szavakatlaga.awk,split.txt,split.awk]
    • Szűrők, reguláris kifejezések
    • AWK programozás: minták, vezérlési szerkezetek, tömbök, beépített függvények, reguláris kifejezések
  3. 15. hét, 2017.05.19. (P) 14:00-16:00 IR224 - zh [segédlet1,segédlet2,gyakorlás]
    14. hét, 2017.05.14. (V) 23:59 - otthoni beadandó feladatok, beadási határidő
    Vizsgaidőszak 1. hét, 2017.05.24. (Szerda) 13:00-15:00 IR224, IR225 - javító zh

Tematika

Linux bevezetés, parancsok, parancsok szöveges fájlokra, csővezetékek, átirányítások, jogosultságkezelés, felhasználók kezelése, linkelés, környezeti változók, szűrők

BASH script programozás, alapok, változók, paraméter kezelés, vezérlési szerkezetek, reguláris kifejezések

AWK programozás, minták, vezérlési szerkezetek, tömbök, beépített függvények, reguláris kifejezések

Ajánlott irodalom

Követelmények

Részteljesítések, pontszerzési lehetőségek: 1 zárthelyi dolgozat, 2 db beadandó feladat.

A zárthelyi dolgozatok és a beadandó feladatok megoldására kapott pontok összege alapján történik a gyakorlati jegy megállapítása, de ennek összege nem lehet nagyobb a két zárthelyi dolgozatra szerezhető összpontszámnál:

Sikertelen gyakorlati teljesítés (elégtelen gyakorlati jegy) javítása javító zh megírásával lehetséges. Javító zh megírására az a hallgató jogosult, aki a szorgalmi időszakbeli részteljesítései alapján elégtelen gyakorlati jegyet szerzett. A javító zh feladatai a teljes félév gyakorlati anyagát lefedik. A javító zh megoldásához csak a helyszínen biztosított elektronikus segédanyag használható. A javító zh-n 40 pont szerezhető. A javítás akkor sikeres, ha a hallgató a javító zh-n legalább 20 pontot szerez. Sikeres javítás esetén elégséges (2) gyakorlati jegy kerül megállapításra. Ennél jobb jegy még magasabb pontszám esetén sem adható. A javító zh megírására, később meghatározandó időpontban kerül majd sor.

Otthoni készüléshez lehetőségek

Otthoni beadandó feladat

A feladatok beküldése a CooSpace-en keresztül történik.

A beadandó feladat beküldendő 2017. május 14. (vasárnap) 23:55-ig. A beadási határidőig többször is be lehet nyújtani a programot (módosított, javított változatokat). Értékeléskor csak a legutoljára benyújtott változatot vesszük figyelembe! Ellenőrizze a feladat sikeres feltöltését!

A beadott szkriptek ellenőrzése és értékelése a kabinetes Linux-os operációs rendszer környezetben történik.

Feltétlenül ellenőrizze, hogy a kész szkriptek megfelelően működik ebben a környezetben!

A beadott feladat csak akkor értékelhető, ha megfelel a feladatkiírásban leírt tartalmi és formai specifikációnak, valamint a program a tesztkörnyezetben megfelelően fut!

A feladat elkészítésekor tetszőleges szakirodalom felhasználható, de a beadott szkripteknek a hallgató saját munkáját kell tartalmaznia. Az igazolhatóan másolt szkriptek nem értékelhetők, függetlenül attól, hogy az eredetiről vagy a másolatról van szó!

Formai követelmények:

1. feladat

Írjon egy olyan shell script-et, amely képek automatikus rendszerezését és átméretezését végzi. A célunk, hogy egy központi könyvtárban (IMAGE_DB_DIR környezeti változó alapján) full, medium és thumb mappákban tároljuk az eredeti képeket, azok 50%-os, illetve 10%-os kicsinyítéseit.

A scriptnek akárhány képfájlt megadhatunk, mint parancssori paramétert, de legalább 1 paraméter szükséges. Ha nincs paraméter, jelezze ki a használat módját! A script a következőt végezze el minden paraméteréül kapott képre:

Ha az IMAGE_DB_DIR változó nem írható/olvasható könyvtárra mutat, vagy üres, hibaüzenetet írjon ki a script a hibacsatornára. Ezen felül a script minden esetben a IMAGE_DB_DIR/log/kotelezo1.log logfile-t kiegészíti olyan információkkal, hogy mely mappából importáltunk képeket, és azok milyen neveket kaptak.

A convert, identify, mogrify parancsok az ImagMagick csomag részei.

Példa:

$ ls $IMAGE_DB_DIR/full
1.jpg 2.jpg
$ ./kotelezo_1.sh
Használat: kotelezo_1.sh  [file ...]
$ pwd
/media/KEPEK_2/Sieles
$ ./kotelezo_1.sh DSCN_102[34].JPG
$ ls $IMAGE_DB_DIR/full
1.jpg 2.jpg 200110202-1.jpg 20110202-2.jpg
$ identify $IMAGE_DB_DIR/thumb/*
1.jpg JPEG 50x50 50x50+0+0 ...
2.jpg JPEG 75x80 75x80+0+0 ...
20110202-1.jpg JPEG 10x20 10x20+0+0 ...
20110202-2.jpg JPEG 100x200 100x200+0+0 ...
$ identify $IMAGE_DB_DIR/full/*
1.jpg JPEG 50x50 500x500+0+0 ...
2.jpg JPEG 75x80 750x800+0+0 ...
20110202-1.jpg JPEG 100x200 10x20+0+0 ...
20110202-2.jpg JPEG 1000x2000 100x200+0+0 ...
$ cat $IMAGE_DB_DIR/log/kotelezo1.log
2010.02.23: /home/juliska/images/moka1.JPE
G -> 1.jpg
2010.02.24: /home/mariska/img/kep3.png -> 2.jpg
2011.02.02: /media/KEPEK_2/Sieles/DSCN_1023.JPG -> 20110202-1.jpg
2011.02.02: /media/KEPEK_2/Sieles/DSCN_1024.JPG -> 20110202-2.jpg
$ unset IMAGE_DB_DIR
$ ./kotelezo1.sh adatok/kepek/*.jpg > /dev/null
Hiba: IMAGE_DB_DIR nem adott!
$ ./kotelezo1.sh adatok/kepek/*.jpg &> /dev/null

2.feladat

Írjon awk scriptet, amely jelenléti alkalmak, valamint a zh pontszámok alapján meghatározza, hogy melyik hallgatók bocsáthatóak vizsgára.

A script egy fájlt kap, amelyben az adatok szóközökkel vannak elválasztva. Az első oszlopban a hallgató EHA kódja szerepel, amelyek 14 db ’+’ vagy ’-’ jel követ annak megfelelően, hogy a hallgató jelen volt-e az adott órán vagy nem. Ezután a 3 zh pontszáma következik, minden zh-ra maximálisan 10 pont kapható. Ha egy hallgató nem írta meg valamelyik zh-át, akkor az arra kapott pontszám hiányzik (nincs nulla írva helyette), és csak a két legjobb zh számít.

Egy hallgató akkor jelentkezhet vizsgára, ha legfeljebb két hiányzása van, valamint a két legjobb zh pontszámának összege elérte a két zh-ra kapható maximális pontszám felét.

Ha a hallgató vizsgázhat, a script írja ki a ’vizsgazhat’ szöveget, továbbá a hallgató által szerzett pontot zárójelben, ellenkező esetben a ’nem vizsgazhat’ szöveget.

Példa:

$ cat pontszamok.txt
NAGRAAT.SZE + + + + - + + + + + + + - + 9 3 7
DEGQABT.SZE + + + + + + + + + + + + + + 4 5 4
PAZRAAT.SZE + + + - - + + + - + + + + + 7 8 6
FOEPACT.SZE + + - + + + + + + + + + + + 6 8
BALQAAT.SZE + + + + + + + + + + + + + + 10 9 10
$ ./vizsgaztato.awk pontszamok.txt
NAGRAAT.SZE vizsgazhat(16)
DEGQABT.SZE nem vizsgazhat
PAZRAAT.SZE nem vizsgazhat
FOEPACT.SZE vizsgazhat(14)
BALQAAT.SZE vizsgazhat(20)