Felhasználói eszközök

Eszközök a webhelyen


speclab-inf:laborok:labor12

Labor 12 inf. Mi MSC 4. szemeszter

12. sz. laboratóriumi munka
Téma: A GNU/Linux parancssor és bash parancsfájlok (szkriptek) alapjai
A munka célja: Elsajátítani a GNU/Linux operációs rendszer legfontosabb parancsait, bash parancsfájlok használatát.
Elméleti ismeretek: fájlkezelési parancsok, cut, grep, mc, ssh, du, cat, echo, ps, chmod, chown
Szükséges eszközök és programok: Telepített Ubuntu Linux (vagy más Linux disztribúció) operációs rendszer, Internet kapcsolat
A munka menete:

Név:
Dátum, idő:
Számítógép:
Indítsa el a szövegszerkesztő programot. Másolja a laboratóriumi munka teljes szövegét majd illessze be a dokumentumba.

1. Feladat

Kapcsolja be a számítógépét Ubuntu Linux operációs rendszert indítva. (Windows esetén VirtualBox programban indítsa el az Ubuntu Linux virtuális gépet).

2. Feladat

Nyissa meg az alábbi oktatási segédletet: http://okt.kmf.uz.ua/dw/doku.php?id=st-linux_alapok:st-linux_alapok
Olvassa el az 1-6 fejezeteket. Az ott olvasható parancsokat próbálja is ki a Terminál programban.

3. Feladat

Másolás / beillesztés segítségével a minta parancsfájlokat hozza létre és próbálja ki a saját gépén is.

4. Feladat

Másolja saját könyvtárába az alábbi parancsfájlt labminta.sc néven.

#!/bin/bash
# letorli kepernyot
clear
echo "Jelenitse meg a kepernyon az elso n (n<90) Fibonacci szamot!"
echo "a script ellenorizze a megadott parameterek szamat és azt is,"
echo "hogy az elso parameter egesz szam!"
echo
#  megjeleniti a program nevet es az elso parametert
echo $0 $1; echo
# ellenorizi, hogy a parameterek szama egy:
if test $# -eq 1
# ha igen:
then
# ellenorzi, hogy az elso parameter szam
# a szuro csak azokat a karaktereket engedi at 
# amlyek 0-9 et tartalmaznak,
# az a erteke vagy szam lesz, vagy ures
a=`echo $1 | grep '^[0-9]*$'`
#
# megjelenk az a a kepernyon (ha nincs #)
# echo "a= $a"
#
# ellenorzi, hogy a szam-e
# ha az elso ES masodik parametert kellene ellenorizni, akkor:
# if test -n "$a" -a -n "$b"
# tehat:       ha az "a" ES a "b" IS szam 
 
  if test -n "$a"
# ha igen:
  then
# ellenorizi, hogy az elso parameter kissebb mint 90
    if test $1 -le 90
    then
# itt jon maga a program
# Az elso ket szam 1 es 1
    f1=1
    f2=1
    echo "     Fibonacci szamok:"
    echo "     $f1"
    echo "     $f2"
# aztan:
# ciklus KEZDETE 
# Az i valtozni fog 3-tol addig a szamig amit maegadtunk parameterkent:
    for i in `seq 3 $1`
    do
# minden ujabb szam az elozo ketto osszege:
    fibo=`expr $f1 '+' $f2`
    echo "     $fibo"
# az uj f1 a regi f2 lesz
    f1=$f2
# az uj f2 pedig a kiszmolt osszeg    
    f2=$fibo
    done
# a ciklus VEGE
    else
    echo "Nem megfelelo parameter n > 90 !"
  fi
else
echo "Nem szam az elso parameter"
fi
else
echo "a parameterek szama nem egy, hanem $# !!!"
fi

Adjon futási jogot és ellenőrizze és vizsgálja meg működését: Próbálja ki a szkript működést különböző paraméterekkel.

./labminta.sc 99
./labminta.sc 7 7
./labminta.sc b
./labminta.sc

5. Feladat

Az alábbi feladatok közül két megadottat végezzen el önállóan (a feladatok sorszámát e-maiben kapja). Amennyiben szükséges a program ellenőrizze a paraméterek számát és helyességét (egész számok esetén, hogy szám-e; fájlok, könyvtárak létezése, stb.) és tartalmazzanak rövid magyarázatot is.

  1. Írjon szkriptet, ami bekér egy számot és ellenőrzi, hogy osztható-e hárommal.
  2. Írjon szkriptet, ami kiírja a páros számokat a paraméterében megadott két érték között. Ellenőrizze, hogy az első paraméter kisebb mint a második.
  3. Írjon szkriptet, ami a paraméterében megadott 3 számmal elvégzi a következő műveleteket a*b*c-(a+b+c)
  4. Írjon szkriptet, ami a paraméterében megadott fájlra ellenőrzi jogosultságait és kiírja, a „rendelkezünk írási joggal” vagy „nem rendelkezünk írási joggal” szöveget.
  5. Írjon szkriptet, ami a paraméterében megadott számról eldönti, hogy osztható-e hattal.
  6. Írjon szkriptet, ami a bc program segítségével kiszámítja a paraméterében megadott sugarú kör kerületét és területét.
  7. Írjon szkriptet, ami a paraméterében megadott három szám közül a legkisebbet kiírja a képernyőre.
  8. Írjon szkriptet, ami kiírja a december havi naptárakat 1985.-től 2000.-ig. Mindegyiket 3 sec-ig. A a naptárak között 1 másodpercig a képernyő legyen üres.
  9. Írjon szkriptet, ami kiírja a paraméterben megadott sorszámú hónap naptárát 1990.-től 2010.-ig egyesével mindegyiket 4 másodpercig.
  10. Írjon szkriptet, ami kiírja a paraméterben megadott állomány karaktereinek számát! Ha a fájl nem létezik jelezze szöveg kiírásával.
  11. Írjon szkriptet, ami megtalálja a paraméterében megadott könyvtár legtöbb sort tartalmazó állományának nevét és sorainak számát!
  12. Írjon szkriptet, ami kiírja azokat az 100-nál kisebb számokat, amelyeknek 4 osztójuk van!
  13. Írjon szkriptet, ami kiírja azokat a paraméterben megadott számnál kisebb számokat, amelyeknek 3 osztójuk van!
  14. Írjon szkriptet, ami megjeleníti az 1, 2, 3, … n számok faktoriálisát! Az n-t paraméterben adja meg, ellenőrizze, hogy egész szám és kisebb mint 50.
  15. Írjon szkriptet, ami megjeleníti a két paraméterében megadott évszámot és azok közötti évszámokat, amennyiben ezekben az években a húsvét vasárnap a nyugati és az ortodox egyházban ugyanarra a napra esik. A szkript ellenőrizze, hogy két paramétert adott meg, azok egész számok. A 2. paraméter nem lehet kisebb mint az első.

6. Feladat

A szkripteket <MONOGRAM>1.sc és <MONOGRAM>2.sc néven mentse. Működésükről készítsen legalább két képet és illessze be a dokumentumba.

7. Feladat

A két szkript sorait illessze be a dokumentumba és mentse dokumentumot Lab12-MONOGRAM.odt néven.

8. Feladat

Küldjön emailt a pferi@kmf.uz.ua címre. A levél tárgya legyen Saját Név LAB12 12 tartalma pedig a következő:

<Saját Név> jelen nyilatkozatom elküldésével kijelentem, hogy ezt a feladat önálló munkám,
annak elkészítése során az önálló munka kitétel tekintetében a feladatot kiadó és az azt ellenőrző
oktatót nem tévesztettem meg.
Jelen nyilatkozat elküldésével tudomásul veszem, hogy amennyiben a feladatot nem magam készítettem,
a tárgy oktatója befogadását és a félév aláírását megtagadja.

A levélhez csatolja a dokumentumot.

speclab-inf/laborok/labor12.txt · Utolsó módosítás: 2018/10/18 12:32 szerkesztette: pferi