Linux, Python és PowerShell alapok
|
|
- Viktor Farkas
- 8 évvel ezelőtt
- Látták:
Átírás
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Linux, Python és PowerShell alapok Gyakorlati útmutató Készítette: Micskei Zoltán, Szatmári Zoltán, Horányi Gergő, Nádudvari Tamás Utolsó módosítás: A gyakorlat célja, hogy bemutassa azokat az alapvető technológiákat, amik szükségesek a szkripteléses házi feladatok megoldásához. Mivel a gyakorlat ideje véges, ezért itt nyilván csak a legfontosabbakra tudunk kitérni, az előadásokat és a dokumentum végén megadott további anyagokat is érdemes még megnézni a két környezet megfelelő szintű elsajátításához. FIGYELEM: az utasításokat, szkripteket ne másoljuk, hanem tényleg gépeljük is be. Különben nem sok mindent tanulunk belőle, nem rögzül a szintaktika. 1 Linux és Python A feladatokat egy VMware virtuális gépbe telepített Fedora rendszeren fogjuk végrehajtani. Ez a virtuális gép előre telepítve tartalmazza a Python parancsértelmezőt és néhány egyszerűbb szövegszerkesztő alkalmazást a szkriptek létrehozásához. 1.1 Linux alapok Az első feladatban áttekintjük a Linux rendszerek használatának alapjait. 1. Indítsuk el a virtuális gépet! Lépjünk be a virtuális gépre: 2. Prompt Ha gyakorlaton vagyunk, akkor az ott megadott felhasználóval. Ha VCL-ben foglaltunk virtuális gépet, akkor az ott kapott felhasználóval. Ha letöltöttük a gépet, akkor a README fájlban megadott felhasználóval. A terminálban látható prompt leggyakrabban az aktuális felhasználó és a számítógép nevét jeleníti karakterrel elválasztva. meres@irfserver> A fenti prompt tehát azt jelöli, hogy az irfserver nevű gépre a meres nevű felhasználóval vagyunk bejelentkezve. (A prompt pontos kinézete ettől eltérhet.) 3. Billentyűzetkiosztás változtatása Ez eléggé disztribúciófüggő, a gyakorlaton használt Fedora esetén a következő parancs segítségével lehet például angol (amerikai) kiosztást kérni: localectl set-keymap us 1
2 A továbbiakban mindenki olyan kiosztást használjon, ami neki jobban kézre áll (us amerikai, hu magyar, stb.). 4. Grafikus felület A VCL-ben csak parancssoros környezet érhető el, a többi esetben elindíthatjuk az Xfce grafikus felületet (de akár maradhatunk a parancssoros felületen is, úgyis végig a terminált fogjuk használni). startxfce4 Ha elindítottuk a GUI-t, akkor indítsunk el egy Terminal ablakot. 5. A kapott terminálnál próbáljuk ki az alapvető funkciókat: FIGYELEM: törekedjünk arra, hogy használjuk a TAB billentyűvel az automatikus parancs- és fájlnév kiegészítést. Vegyük észre, hogy amennyiben több lehetőség adódik a kiegészítésre, akkor a TAB kétszeri lenyomása után ezekről listát kapunk. TIPP: A paramétereknél is érdemes a TAB billentyűt használni, mert különböző típusú elemek kiegészítését is tudja a Bash shell. Alap fájlkezelő parancsok: cd, ls, cp, mkdir, pwd pwd cd ~ mkdir test cd test touch 01.txt echo 02 > 02.txt ls ls -l cp 02.txt 03.txt cat 02.txt clear chmod a+w 02.txt # print working directory: aktualis konyvtar # ~: a felhasznalonk home konyvtara # make directory: test konyvtar letrehozasa # change directory: konyvtar valtasa # fajl hozzaferesi idok modositasa # kiiratas es fajlba atiranyitas # konyvtar tartalmanak listazasa # reszletes lista # copy: masolas # fajl tartalmanak osszefuzese es kiirasa # kepernyo torlese # jogosultsagok allitasa 6. Súgó oldalak A súgó oldalak előhozására való a man (manual) parancs. Nézzük meg a fenti parancsok közül néhánynak a manual oldalát, pl.: man touch A manualból a q billentyűvel tudunk kilépni. A manual általában elég részletes, de nincsenek benne példák, amik a gyakran használt opciókat bemutatnák. A tldr pont az ilyen példákat mutatja meg nekünk: tldr find touch A find opció után kell írni a keresett parancs nevét. (A tldr nem része a legtöbb alap disztribúciónak, azt külön kell feltelepíteni.) 2
3 7. Felhasználóváltás, privilegizált műveletek A whoami parancs segítségével tudjuk ellenőrizni, hogy éppen milyen felhasználóval vagyunk bejelentkezve. whoami Sok művelet végrehajtása a sima felhasználóknak nem engedélyezett, ehhez root (superuser) jogok kellenek. cat /etc/shadow # permission denied az eredmeny Az egyik módszer ekkor, hogy ha van megfelelő jogunk (a /etc/sudoers fájlban lévő beállítások határozzák ezt meg), akkor ezt az egy műveletet megpróbáljuk a root felhasználóként végrehajtani, erre való a sudo parancs. A sudo paraméterként egy utasítást vár, az elindítása után pedig a SAJÁT felhasználónk jelszavát kéri be sudo cat /etc/shadow # sajat jelszot kell utana megadni Ha sikeres volt, akkor ezután még 5 percig ezt megjegyzi a rendszer, és nem kell a későbbi sudo utasítások végrehajtásához jelszót megadni. (A sudo ennél sokkal többet is tud, pl. -u segítségével tetszőleges felhasználó nevében parancsot végrehajtani, de ennyi most elég lesz nekünk egyelőre.) A másik lehetőség, ha teljesen átváltunk más felhasználóra, erre való a su parancs. Ilyenkor annak a felhasználónak a jelszavát kell beírni, akire átváltunk. Ha nem adunk meg paraméterként felhasználónevet, akkor alapértelmezetten a root felhasználóra akar átváltani. su - A - hatására a kapott shell login shell lesz, azaz például megkapjuk a cél felhasználó PATH beállításait. Ezután lépjünk is ki a root shellből, mert most nincs szükség rá (biztonsági okokból érdemes csak akkor átváltani, ha erre tényleg szükség van). Erre az exit parancs szolgál: exit 8. Hálózati beállítások A legfontosabb hálózati beállításokat az ip paranccsal kérdezhetjük le. ip addr show Keressük meg a kimenetben az IP-címünket. Ha a virtuális gép hálózati kártyája Bridged üzemmódban van, akkor ugye úgy viselkedik, mintha a fizikai hálózatunkra 3
4 lenne rákötve 1. Ilyenkor, ha a virtuális gép DHCP-vel kér dinamikus IP-címet, akkor a fizikai hálózatunkon lévő DHCP szerverhez fordul. Ha ott nincs DHCP-kiszolgáló, vagy az nem oszt ki neki IP-címet (mert pl. MAC cím alapú szűrést használ), akkor érdemes átállítani NAT üzemmódba a virtuális gépet. Állítsuk át a virtuális gép hálózati kártyáját NAT módba! Ha ezt bekapcsolt állapotban tesszük meg, akkor nyilván a virtuális gépen még a régi IP-címünk él, ezért ilyenkor újat kell kérni. A legegyszerűbb módja ennek a teljes hálózati stack újraindítása, bár ennél nyilván vannak finomabb megoldások is. sudo systemctl restart network # ez disztribucionkent eltero lehet A további hálózati beállítások megnézéséhez hasznosak lehetnek még a következő parancsok: ip route cat /etc/resolv.conf # routing tabla listazasa # DNS szerverek listaja 9. Parancstörténet Most, hogy már elég sok parancsot kiadtunk, tudunk közöttük navigálni. A FEL és LE billentyűk segítségével lépkedjünk a korábbi parancsok között. A konzolkimenetben való navigációra a Shift+PgUp és Shift+PgDown billentyűkombinációk használhatók. A korábbi parancsok között a Ctrl+R megnyomása után lehet keresni ( reverse incremental history search mode ). Ilyenkor, ha valamit beírtunk már, akkor a Ctrl+R többszöri megnyomásával lehet visszafelé lépkedni a korábbi parancsok között. Ha 1 A VMware Player kezeléséről és részletesen a hálózatkezeléséről a Mérés labor 4. kapcsolódó segédletében lehet olvasni, 4
5 megtaláltuk, amit keresünk, akkor az Enter segítségével végrehajthatjuk, vagy az Escape segítségével szerkeszthetjük is. A Ctrl+U segítésével lehet a parancs kurzor előtti részét kitörölni. 10. Szövegszerkesztők használata Alapértelmezetten általában rengeteg parancssori szövegszerkesztő áll a rendelkezésünkre. Ezek közül mindenki ízlés szerint válogathat. Kezdésként talán az mcedit és nano programokat érdemes kipróbálni. mcedit hello.txt Itt az alsó sorban ki van írva, hogy az adott F* billentyűk mit csinálnak, pl. az F10 a kilépés. További hasznos billentyűkombináció a CTRL+O, mely kilépés nélkül a háttérben futó shellre vált, így gyorsan tudjuk tesztelni az elkészített szkripteket. nano hello.txt Itt az alul szereplő betűk elé a Ctrl billentyűt kell hozzárakni a funkció eléréséhez, pl. Ctrl+O a mentés kódja. 11. Távoli elérés A virtuális gépünket könnyen elérhetjük távolról is. Windowsos kliens esetén erre való a Putty 2, Linux esetén pedig az ssh (Secure SHell) parancs. Utóbbi esetén távoli gép adatait felhasznalo@gepnev formában kell megadni. A gépnév helyett lehet IPcímet is megadni. Próbáljunk távolról bejelentkezni a virtuális gépre a GAZDA gépről. Annyi előnye már rögtön van a megoldásnak, hogy ha a virtuális gép ablakában nem működött a másolás a gazda- és a vendéggép között, akkor a gazdagépen lévő terminálból (vagy Putty-ból) már könnyedén tudunk például parancsokat átmásolni 3. Arra figyeljünk, hogy a néhány Linux disztribúció esetén tradicionálisan úgy működik a másolás, hogy ha az egérrel kijelölünk valamit, akkor az egyből bekerül a vágólapra és a jobb gomb utána már rögtön be is illeszti. Ez a viselkedés a különböző terminálalkalmazások esetén eltérhet. Most egyelőre lépjünk is ki a távoli konzolból, erre szolgál az exit: exit Ha fájlokat szeretnénk másolni két linuxos gép vagy egy linuxos és egy windowsos között, akkor arra az SCP (Secure CoPy) protokoll a legegyszerűbb megoldás. Már nem 2 Putty: 3 Okulásként: korábbi félévekben volt olyan hallgató, aki az elkészült házi feladat szkriptet forrásfájlként nem adta le, pusztán egy képernyőképet adott le róla, mondván, hogy nem sikerült kimásolni a virtuális gépből. Az ilyet nem szeretjük, nem igazán informatikushoz méltó megoldás. 5
6 lepődünk meg, hogy ehhez Linux alatt az scp program használható, Windows alatt pedig például a WinSCP 4. Keressük ki az scp leírásából, hogy hogyan tudjuk átmásolni a gazdagépre az imént létrehozott hello.txt fájlt. # ezt a gazdagepen adjuk ki, a parameterezesben az scp sugoja segit scp (Segítség: a cp parancshoz hasonlóan a forrás- és célfájlt kell megadni, a különbség itt annyi, hogy távoli gép esetén felhasznalo@gepnev: prefixet kell alkalmazni.) 12. Telepítés Ha valami hiányzik a virtuális gépről, akkor azt a csomagkezelő segítségével könnyen tudjuk telepíteni, ha van internetelérése a virtuális gépnek. A csomagkezelő neve és használata disztribúciófüggő, Fedora alatt így kell használni: sudo dnf install <package_name> Próbáljuk meg például telepíteni a nano csomagot (a csomagkezelő megkeresi, majd egy idő után szól, hogy már fel van telepítve). 13. Leállítás Munkánk végeztével az operációs rendszert le kell állítani, vagy szükség esetén újraindítani. Linux környezetben ezt a /sbin/halt és /sbin/reboot parancsokkal tehetjük meg. 4 WinSCP: 6
7 1.2 Python alapok A következő feladatban a Python nyelv alapvető funkcióit nézzük meg. 1. A Python telepítése (A gyakorlaton ezt nem kell elvégezni, ott a kiadott Linux virtuális gépet használjuk.) Windows operációs rendszerekhez telepítőt a python.org oldalról tölthetünk le, Linux alatt legtöbbször fel is van telepítve. Arra figyeljünk, hogy jelenleg két párhuzamos verziót fejlesztenek még, a 2.x régi és a 3.x új vonalat. A tárgy keretében a 3.x verziót nézzük már, azonban ezzel még néhány korábbi modul és leírás nem kompatibilis. 2. A Python elindítása Interaktív módban történő indításhoz egyszerűen írjuk be, hogy: python3 FIGYELEM: Linux esetén a python a 2.x verziót indítja el, nekünk a 3.x kell! 3. Változók definiálása Változók beállítása az egyenlőségjellel történik. A változók neveiben a C és ahhoz hasonló nyelvekben megszokott karaktereket használhatjuk. Az aritmetikai operátorok a megszokott módon működnek. Az utasításokat nem szükséges speciális karakterrel lezárni, elég egy ENTER-t ütni. flying_circus = 1969 now = 2015 years = now - flying_circus IRF = "VIMIA370" # this is a comment quote = 'We are the Knights who say... "NI!"' quote2 = "Bring us a " + "shrubbery!" A sztringeket megadhatjuk "" és '' között is, elvileg nincs különbség (csak annyi, hogy így nem kell a másik fajta karaktert abban az esetben helyettesíteni). Változók értékét az alábbi módokon írhatjuk ki: print(quote) years print("1st {0} episode was aired {1} years ago.".format('flying Circus', years)) TIPP: Bonyolultabb összefűzésekhez használható a string típus format() művelete. TIPP: Figyeljünk arra, hogy a Python érzékeny a kis- és nagybetűk közti különbségekre. print(irf) # hiba: name 'irf' is not defined TIPP: A szöveges változók tömbként indexelhetőek, akár egy részük is lekérhető. print(quote2[0]) print(irf[-2]) # B, tehát 0-tól indexelünk # 7, negatív index a végétől számolódik 7
8 quote[3:6] quote2[-10:] # are # shrubbery! A s[i:j] jelölés az úgynevezett szeletelés (slicing), ami visszaadja azokat a k indexű elemeket, ahol i k < j. Fontos, hogy a Python sztringek utólag nem módosíthatóak. IRF[0] = "B" IRF = "BMEVIMIA370" # hiba: str does not support assignment # Ez nem okoz hibát! 4. Listák kezelése floats = ["bread", 'apples', 'duck'] floats.append("witch") print(floats[1:2]) # ['apples'] print(len(floats)) # 4 A listákon is hasonló alapműveletek végezhetőek el, mint a sztringeken, ugyanis mindketten úgynevezett sorozatok (sequence). A listák a sztringekkel ellentétben azonban módosíthatóak. TIPP: Listák egymásba ágyazása is lehetséges. 5. Szótár (Dictionary) Pythonban az asszociatív tömböt (vagy mapet) dictionarynek nevezik, de az elnevezéstől függetlenül ez ugyanúgy kulcs-érték párok összerendelése. A kulcsok tipikusan sztringek, értéknek pedig bármilyen Pythonban ismert típus adható. nums = {"egy" : 1, "ketto" : 2, "harom" : 3} nums["negy"] = 4 nums["egy"] # 1 nums.keys() # ["egy", "ketto", "harom", "negy"] (sorrend valtozhat) nums["ot"] # HIBA! KeyError nincs ilyen kulcs 6. Külső parancsok hívása Python alatt is lehetőségünk van külső alkalmazások meghívására, azok kimenetének feldolgozására ilyenkor azonban figyeljünk arra, hogy a platformfüggetlenség elveszhet! Különösen legyünk tekintettel arra, ha felhasználói bemenet alapján generálunk külső hívásokat, hiszen ilyenkor előfordulhat az ú.n. shell injection támadás 5. import subprocess subprocess.call(["ls", "-l"]) Ha fel szeretnénk dolgozni az eredményt, akkor célszerű a check_output parancsot használni, amivel a parancs kimenetét eltárolhatjuk. 5 Lásd még röviden: 8
9 output = subprocess.check_output(["ls", "-l"], universal_newlines=true) for i in output.splitlines(): print("line:", i) A Python a ciklusmagot leíró blokkot behúzással különíti el a zárójelezés helyett (a behúzáshoz lehet szóközt vagy tabulátort használni, de egyszerre csak az egyiket). Az universal_newlines paraméter azért szükséges, mert így a parancs kimenetét nem bájtfolyamként, hanem sztringként kapjuk vissza. TIPP: Ha az interpreterbe írjuk be a fenti sorokat, akkor a for utasítást tartalmazó sor beírása után a következő sorban három pontot ír ki, de ez még az esetleges belső blokkot csak jelzi. Ha ténylegesen azt szeretnénk, hogy az utasítás a for cikluson belül hajtódjon végre, akkor bentebb kell kezdeni. Az alábbi ábra ezt szemlélteti. Ha egy több paramétert váró külső parancsot szeretnénk meghívni, kényelmes lehet egyetlen sztringként tárolni a teljes parancsot, és a shlex modul split függvényével feldarabolva átadni a check_output számára: import subprocess import shlex find_myscript = "find /opt /usr /var -name myscript.py -type f" split_find = shlex.split(find_mysscript) subprocess.check_output(split_find, universal_newline=true) 7. Fájl soronkénti olvasása Gyakori feladat, hogy egy fájlt soronként kell olvasni és valamilyen műveletet kell elvégezni minden egyes sorára. Ehhez először meg kell nyitni a fájlt. f = open("/etc/passwd") A soronkénti feldolgozást legegyszerűbben a readlines() utasítással és egy foreach ciklussal valósíthatjuk meg: f = open("/etc/passwd") for line in f.readlines(): if line.find(":") >= 0: print(line.partition(":")[0]) f.close() 9
10 TIPP: Fájlokat a Python with kontextus-kezelőjével is megnyithatunk. Ez leegyszerűsíti a hibakezelést, és a blokkból kilépve automatikusan lezárja a fájlt. with open("/etc/passwd") as f: for line in f.readlines(): if line.find(":") >= 0: print(line.partition(":")[0]) Python 3.1-től kezdve lehetőség van több fájl megnyitására egy blokkon belül: with open("/input.txt") as input, open("/output.txt", "w") as output: pass 8. CSV fájlkezelés Ha egyszerűbb szöveges formátumú fájlokkal szeretnénk dolgozni, jó eséllyel találunk megfelelő Python modult, aminek a segítségével gyorsabban és könnyebb értelmezhetjük fájlunkat. Úgynevezett Comma-separated values (CSV) fájlok kezelésére a Python csv modulja ad támogatást. Az alábbi példában az input.csv fájlt beolvassuk, majd az első oszlop minden sorát kivéve a fejlécet IRF -re lecserélve kiírjuk az output.csv fájlba. A csv.reader első paramétere egy fájlobjektum, a delimiter="," paraméter pedig beállítja, hogy a CSV fájlban vesszőt várunk elválasztó karakterként. Egy for ciklus segítségével soronként visszakapjuk az input.csv fájl tartalmát egy listaként, ahol a lista elemei a CSV fájl beolvasott sorának mezői. A példa lefuttatásához előbb hozzunk létre egy CSV fájlt az aktuális könyvtárban, például a következő tartalommal: kod,nev,letszam VIMIA370,"Intelligens rendszerfelügyelet",214 VIMIA219,"Operációs rendszerek",401 Az első sor a CSV fájl fejléce, ez határozza meg az oszlopok neveit. A többi sorban vannak az egyes rekordok, jelen esetben vesszővel elválasztva (de ez lehetne más karakter is, pl. magyar területi beállítások esetén gyakori a pontosvessző is). Az egyes mezők tartalmát lehet idézőjelek közé rakni, így pl. akkor tartalmazhatnák a mezőelválasztó karaktert is. Ezután ezt így tudjuk feldolgozni. import csv input = open("./input.csv") output = open("./output.csv", "w") reader = csv.reader(input, delimiter=",") writer = csv.writer(output) rownum = 0 for line in reader: # A fejlécet nem akarjuk módosítani. if rownum!= 0: 10
11 print(line[0]) writer.writerow(line) # Kiírjuk a sort. rownum += 1 input.close() output.close() TIPP: figyeljünk arra, hogy a fenti kódban nincs még hibakezelés, tehát például ha hagytunk egy üres sort a CSV fájl végén, akkor hibaüzenetet kapunk. TIPP: használhatjuk a csv.dictreader osztályt is. Ilyenkor lista helyett egy Python dictionaryt kapunk vissza. A kulcsok az oszlopok nevei lesznek, az értékek pedig a mezőértékek. import csv with open("./input.csv") as input: reader = csv.dictreader(input, delimiter=",") for line in reader: print(line["kod"]) # Feltételezzük, hogy van kod nevű oszlop a fájlban TIPP: természetesen van csv.dictwriter osztály is, ami dictionaryt vár a writerow metódusa paramétereként. Figyeljünk, hogy a csv.dictwriter-nek van egy fieldnames kötelező paramétere, ami egy listát vár az oszlopok neveiről. A csv modulban sok egyebet be lehet még állítani (pl. milyen a fájlok kódolása). Használat előtt érdemes átfutni majd a dokumentációját. 1.3 Python szkriptek készítése Az előző feladatban megnéztük, hogy hogyan tudjuk a Pythont interaktív módon használni. Készítsünk most egy-két alapvető szkriptet, amiket később többször, akár más paraméterekkel is le tudunk futtatni. 1. Hello World Python szkript megírása és futtatása Ehhez érdemes két darab ssh kapcsolatot használni, az egyikben a szövegszerkesztőben legyen nyitva a szkript fájl, a másikban pedig futtathatjuk, és ellenőrizhetjük az eredményt. TIPP: Komolyabb munkák esetén érdemes egy Python IDE-t telepíteni (ilyen pl. a PyCharm vagy a PyDev, amely az Eclipse rendszerbe telepíthető) Írjuk be a következő minimális szkriptet, majd mentsük el hello.py néven: #! /usr/bin/env python3 # My first Python script print("hello world!") TIPP: az előadáson szerepelt, hogy a #! kezdetű első sor szerepe speciális, ez mondja meg, hogy milyen programmal kell futtatni az adott fájlt. 11
12 Ahhoz, hogy futtatni tudjuk, először még futtatás jogot kell rá adni. A másik terminál ablakban adjuk ki a következő parancsot: chmod u+x hello.py Ezután futtassuk is le a szkriptünket:./hello.py A./ azért kell elé, mert Linuxban általában nincs bent a. (az aktuális könyvtár) a PATH-ban, és a shell csak a PATH-ban szereplő könyvtárakban keresi a futtatandó állományt. Ha minden jól megy, akkor büszkén hátra is dőlhetünk, elkészült az első Python szkriptünk. 2. Paraméterkezelés Kevés olyan szkript készül, ami ne várna valamilyen bemenetet a felhasználótól paraméter formájában. Pythonban a parancssori paraméterek feldolgozására az argparse modul biztosít egyszerű kezelést. Egy új értelmezőt az ArgumentParser osztály létrehozásával készíthetünk, a létrehozott osztályhoz pedig az add_argument metódus meghívásával adhatunk hozzá új parancssori paramétert. A metódus első két paramétere a paraméterünk rövid és hosszú elnevezése. A felhasználó által megadott paramétereket a parse_args metódus visszatérési értékeként kapott objektum attribútumain keresztül érhetjük el. Nézzünk egy egyszerű példát a használatára. import argparse parser = argparse.argumentparser(description='example for arguments.') parser.add_argument('-f','--file', help='file argument.', type=str, required=true) parser.add_argument('-o','--overwrite', help='overwrite the file.', action='store_true', required=false) args = parser.parse_args() print(args.file) print(args.overwrite) Az argparse modul automatikusan elkészíti a parancssori alkalmazásoknál megszokott súgót, amit a -h kapcsolóval érhetünk el. Ilyenkor a description és help paramétereknél megadott szövegeket jeleníti meg a felhasználó számára. A required paraméter segítségével megadhatjuk, hogy egy paraméter megadása kötelező vagy csak opcionális. Ha kötelező paraméter nélkül hívjuk a szkripet az értelmező automatikusan hibát dob. A type paraméterrel megadhatjuk, hogy milyen típusú paramétert várunk, és ha a konverzió nem sikerül, akkor az értelmező hibával leáll. 12
13 Flag típusú paraméter az argparse segítségével az action='store_true' paraméter megadásával készíthetünk. Ilyenkor a paraméterünk ha meg van adva True értéket fog felvenni. TIPP: Az argparse modul további funkcióinak megismeréséhez ajánlott a hivatalos dokumentáció tüzetes áttekintése. 3. Önálló szkript készítése (1) Nézzünk most egy kicsivel bonyolultabb szkriptet, ami már valami paramétert is vár. Írjuk meg a hello2.py szkriptet, ami első paraméterként egy szót vár, majd ezt kiírja a hello után. A második paramétere opcionális, ez egy fájlnév lehet. Ha ez meg van adva, akkor ebbe a fájlba is kiírja a kimenetét. A szkript ellenőrizze, hogy létezik-e már ez a fájl, ha igen, akkor ne fusson le. Gondoljuk előtte végig, hogy milyen értékekkel tesztelnénk az elkészült megoldást! Mindenképpen meg kéne nézni a következőket: o ha nem adunk meg paramétert, hibát kell jeleznie, o ha kettőnél több paramétert adunk meg, hibát kell jeleznie, o ha egy paramétert adunk meg, csak a képernyőre kell kiírnia, o ha két paramétert adunk meg és a másodikként megadott fájl létezik, hibát kell dobnia, o ha két paraméter adunk meg és a másodikként megadott fájl nem létezik, a képernyőre és a fájlra is kell írnia. 4. Önálló szkript készítése (2) Készítsünk egy saját szkriptet, mely a következő paramétereket várja: createuserdirs.py shell path A szkript dolgozza fel a /etc/passwd fájlt, és hozzon létre a path paraméterként megadott könyvtárban minden egyes felhasználónak egy, a felhasználó login nevével megegyező könyvtárat, akinek a shell-je a shell paraméterben megadottal egyezik. A path paraméter opcionális, ha nincs megadva, akkor az aktuális könyvtárban hozza létre a könyvtárakat. Ha meg van adva, akkor a szkript ellenőrizze, hogy létezik-e az adott könyvtár. A szkript egy lehetséges helyes meghívása: createuserdirs.py --shell /bin/bash --path /tmp 5. Hogyan tovább? Ebbe a kis időbe a Python ilyen mélységben fért bele. A Python honlapján azonban egy hosszabb és jól követhető leírás található [2]. Szintén érdemes még megnézni a Google Python class című írásait, ez egy nagyon tömör és hasznos bevezető [3]. 13
14 2 Windows és PowerShell A feladatokat egy Windows 10 (virtuális) gépen érdemes végrehajtani. A gépre az alap Windows 10 telepítésen kívül nem kell semmi, abban elérhető a PowerShell PowerShell konzol használata A következő feladatban a PowerShell konzol alapfunkcióit tekintjük át. 1. Nyissuk meg a PowerShell konzolt! 2. Ennek hatására megnyílik a PowerShell konzol. 3. Hajtsunk végre egy parancsot! FIGYELEM: szokjuk meg az automatikus kiegészítés használatát (TAB). Ha több lehetséges kiegészítés van, akkor a TAB ezek között vált (Shift+TAB visszafelé lépked). Ha sok lehetséges kiegészítés van, akkor érdemes egy-két betűvel többet begépelni, és utána használni csak a TAB-ot. Kérdezzük le az elérhető parancsokat! Get-Command 4. Adjunk át valami paramétert a fenti cmdletnek! Legyen ez a -Verb, amivel a cmdletben lévő igére lehet szűrni. Get-Command -Verb Invoke TIPP: A paraméter nevénél is érdemes használni az automatikus kiegészítést. TIPP: ha Wordből/PDF-ből másolunk PowerShell parancsokat, akkor arra érdemes figyelni, hogy a Word néha lecseréli a beírt karaktereket tipográfiailag megfelelőbbre (pl. " helyett vagy - helyett ). Ezeket a PowerShell nem szereti, és nehéz is észrevenni a különbséget elsőre. 5. Nézzük meg, hogy milyen további paraméterei vannak a Get-Command cmdletnek a súgó segítségével! Get-Help Get-Command Nézzük meg, hogy milyen főbb részekből áll egy súgó (Name, Syntax, Description ). 14
15 Próbáljuk értelmezni a szintaxis leírását, azonosítsuk a kötelező és opcionális paramétereket. Hogy jelöli a PowerShell, ha egy paraméter pozícióval is megadható, és hogyan, ha egy paraméter switch típusú? Nézzük meg a teljes súgót is, figyeljük meg a példák (examples) részt is! Get-Help Get-Command -Full more A more esetén a Space billentyűvel tudunk lapozni, a q segítségével pedig bármikor kiléphetünk. 6. Másolás és beillesztés A PowerShell konzol esetén az egérrel egyszerűen tudunk kijelölni szöveget. Ezután a jobb gomb megnyomásával kerül az át a Vágólapra. Ugyanígy a jobb gomb megnyomásával tudunk beilleszteni szöveget is. Próbáljunk meg kimásolni valami szöveget, majd azt beilleszteni és végrehajtani! 7. Parancsok kiválasztása grafikusan Használjuk a Show-Command cmdletet: Show-Command Nézzük meg milyen modulok vannak! Válasszuk ki a NetAdapter modult, majd onnan a Get-NetAdapter cmdletet! Nézzük meg, hogy milyen különböző paraméterezései lehetnek (az egyes fülek, amik a különböző ParameterSeteknek felelnek meg). Paraméterezzük úgy fel, hogy a rejtett interfészeket is megjelenítse! 8. Parancstörténet használata Most már jó pár parancsot beírtunk, így lehet közöttük lépkedni. A FEL billentyű segítségével lépkedjünk vissza arra a parancsra, amikor az Invoke igéhez tartozó parancsokat kérdeztük le, majd hajtsuk is végre! PowerShell 5.0 esetén már itt is működik a Ctrl+R billentyűkombinációval a keresés. A Get-History cmdlet segítségével pedig a teljes parancstörténetet megkapjuk. 2.2 PowerShell alapok Most nézzük meg a PowerShell alapjait: változókezelés, objektumok használata, főbb cmdletek. 1. Változókezelés és behelyettesítések Adjunk értéket egy változónak, majd nézzük meg a típusát és azt, hogy milyen műveleteket lehet végrehajtani vele. $subject = "IRF" $subject.gettype() Get-Member -InputObject $subject TIPP: ugye a változónévnél is használtuk az automatikus kiegészítést? 15
16 TIPP: figyeljük meg, hogy a konzol automatikusan színezi a változókat és sztringeket. Hívjuk meg a változónkon értelmezett egyik metódust: $subject.substring(1) Próbáljuk ki a különböző behelyettesítési módszereket: echo "Hello $subject" echo 'Hello $subject' Az echo csak a Write-Output aliasa, ezt könnyen ellenőrizhetjük a Get-Alias echo paranccsal. Ha a változó egy tulajdonságára akarunk hivatkozni egy kiíratás során, akkor a következő formát kell használni: # a megjegyzes jele # # hibas echo "Hossz: $subject.length karakter" # helyes echo "Hossz: $($subject.length) karakter" Ha bonyolultabb adatstruktúrát akarunk használni, akkor lehet tetszőleges.net objektumot példányosítani. $stack = New-Object System.Collections.Stack $stack.push(6) $stack.pop() Tömböt és hash táblát egyszerűen lehet létrehozni: # tomb $array = "Hello", 5, "IRF" $array[2] $array[1] $array.length # hash tabla $values "low" = 1; "high" = 2 } $values["low"] 2. Alap parancsok és csővezeték (pipeline) kezelése Hozzunk létre egy könyvtárat és pár fájlt, hogy legyen min dolgozni a következő feladatokban. mkdir test cd test echo "aaaa" > a.txt "bbbbb" out-file b.txt # lehet így is $c = "cccccc" Out-File -FilePath c.txt -InputObject $c # vagy így 16
17 Get-ChildItem # ez visszaad egy gyűjteményt Válasszunk ki csak néhány oszlopot: Get-ChildItem Select-Object basename, extension Jelenítsük meg listaként az eredményt: Get-ChildItem Select-Object basename, extension Format-List Használjuk a rendezést: Get-ChildItem Sort-Object -Descending Szűrjünk ki néhány elemet: Get-ChildItem Where-Object {$_.Length -gt 15} # ugyanez rövidebben ls? {$_.Length -gt 15} Végezzünk el valamilyen műveletet a csővezeték minden elemére! Írjuk ki a fájlok nevét és hosszát egy karaktersorozatként egy-egy sorba: Get-ChildItem ForEach-Object {Write-Output "$($_.Name): $($_.Length)"} # ugyenez rövidebben dir % {echo "$($_.Name): $($_.Length)"} Keressük ki, hogy mekkora a legnagyobb fájl mérete: (Get-ChildItem Measure-Object -Property Length -Maximum).Maximum # rövidebben, kihasználva, hogy a Property az első pozícionálás paraméter (ls measure Length -Maximum).Maximum Nézzünk egy picit bonyolultabb műveletet. Kérdezzük le, hogy a Windows könyvtárban lévő log kiterjesztésű fájlok tartalmában hány sorban szerepel a starting szó! (Get-ChildItem -Path C:\Windows *.log Get-Content select-string "starting").length Ebből a pár példából már remélhetőleg érződik, hogy itt egy picit más stílusú kódot kell írni, mint pl. Java vagy C# esetén. A csővezeték használatával tömören lehet egy bonyolult feldolgozási sorozatot végrehajtani, sokkal kevesebbszer van szükség segédváltozók bevezetésére. TIPP: amikor csak a konzolba írunk be rövidebb parancsokat, akkor érdemes a cmdletek rövid neveit használni. Később, amikor majd újrahasznosítható szkripteket készítünk, akkor ott inkább a hosszabb, beszédesebb neveket használjuk majd, hogy könnyebben olvasható legyen a kód. 17
18 2.3 PowerShell szkriptek készítése Miután megnéztük, hogy hogyan lehet parancsokat beírni a PowerShell konzolba, készítsünk egy-két egyszerűbb szkriptet, amiket később többször meg lehet hívni. 1. ExecutionPolicy beállítása Ahhoz, hogy szkripteket tudjunk futtatni, lehet, hogy be kell még állítani a következőket (egyébként a futtatáskor hibát kapunk). A PowerShell alapértelmezetten nem hagy szkripteket futtatni, csak ha azok digitálisan alá vannak írva. Ezt a következőképp tudjuk megváltoztatni: Indítsunk el rendszergazdaként egy PowerShell konzolt, majd hajtsuk végre a következő parancsot: Set-ExecutionPolicy RemoteSigned Ennek hatására csak a távoli helyről futó vagy letöltött szkriptek esetén követeli meg a digitális aláírás meglétét. Zárjuk be a rendszergazda konzolt, és indítsunk egy normál felhasználóit helyette. 2. Hello World szkript Nyissunk egy jegyzettömböt, és másoljuk bele a következő kódot. Az eredményt mentsük el Out-Hello.ps1 néven. Figyeljünk a.ps1 kiterjesztésre! param( [Parameter(mandatory=$true)][string] $Name ) Write-Output "Hello $Name!" Hajtsuk végre a létrehozott szkriptet először paraméter nélkül:.\out-hello.ps1 Mit tapasztaltunk? Hajtsuk most végre a létrehozott szkriptet megadva a paramétert:.\out-hello.ps1 -Name "IRF" 3. Súgó hozzáadása Hasznos, ha a szkriptünknek van fejkommentje, ami a legfontosabb információkat tartalmazza. PowerShellben ezt meg lehet úgy írni, hogy utána a Get-Help segítségével a beépített cmdletekéhez hasonló súgót tudjunk generálni. Egészítsük ki a fenti szkriptünket a következő fejléccel: 18
19 <#.SYNOPSIS Writes out a greeting message..parameter Name The name to greet..notes Sample script for IRF. #> param( [Parameter(mandatory=$true)][string] $Name ) Write-Output "Hello $Name!" Próbáljuk is ki, hogy megjelenik-e a súgó: Get-Help.\Out-Hello.ps1 TIPP: figyeljünk arra, hogy ha akár csak egy karaktert is elírunk valamelyik kulcsszóban, akkor semmit nem ír ki a súgóból. 4. Integrated Scripting Environment (ISE) használata Nyissuk meg az előbb elkészített szkriptünk az ISE programban (jobb gomb a tálcán lévő PowerShell ikonon, majd onnan Windows PowerShell ISE)! Ismerkedjünk meg a felülettel! Helyezzünk el egy töréspontot a kiírató sorra! Indítsuk el debug módban (F5)! Az ISE jelzi, hogy jelenleg hol tart a végrehajtás. A $Name változó fölé mozgatva a kurzort megnézhetjük annak értékét. Ha meg szeretnénk adni, hogy mit kapjon paraméterként a szkript induláskor, akkor az alsó konzol részen navigáljunk el a szkript könyvtárába, és innen hívjuk meg a szkriptet a megfelelő paraméterekkel Példa szkriptek és önálló feladatok 1. Szkript készítése önállóan Készítsük el a következő paraméterekkel rendelkező szkriptet: Get-BigProcess [-Name] <String> [[-Size] <Int32>] A szkript lekérdezi a futó folyamatokat, és visszaadja a Name paraméterrel megegyező nevűek közül azokat, amiknek a fizikai memóriafoglalása (working set) nagyobb, mint a Size paraméter megabájtban értve. A szkript ellenőrizze a bemeneti paramétereket, a Name paraméter kötelező, a Size opcionális. A szkript egy lehetséges meghívása: Get-BigProcess -Name "notepad" -Size 15 6 Ha tud valaki más, jobb megoldást, kérem, hogy írja meg! 19
20 2. Komplexebb szkriptek A gyakorlati anyagok között szerepel két példa szkript is: Get-PrincipalInAcl.ps1: lekérdezi egy ACL-ben szereplő neveket és SID-eket. Ehhez egy külső programot, a Sysinternals csomag PsGetSid programját használja, a szkript ezt hívja a SID meghatározásához. Get-FaceBookFriendsPicture.ps1: Letölti egy adott személy Facebookon lévő barátainak a profilképeit. Ez se túl bonyolult, csak van benne hibakezelés és részletes haladás kiírása, azért hosszabb a kód (a lényegi rész 3 sor lenne). A PowerShell 3-ban megjelent REST és webes hívásokat megvalósító cmdleteket használja. Nézzük meg a kódjukat, próbáljuk megérteni a működésüket. Internetről letöltött szkriptek futtatása esetén hibát dobhat a PowerShell, hogy nincs digitálisan aláírva a szkript, holott, korábban megváltoztattuk az ExecutionPolicy beállítást RemoteSigned értékre. Ez azért van, mert a Windows az Internetről letöltött fájlokat megjelöli, és azokat távoli (=veszélyes) fájlokként kezeli. Ezt a fájl tulajdonságlapján tudjuk kikapcsolni az Unblock gombbal. (Ezt viszont tényleg csak megbízható fájlokra tegyük meg!) 20
21 3 Összefoglalás A gyakorlat során megnéztük azokat az alapvető ismereteket, amik a házi feladatnál az elinduláshoz kellenek. Megismerkedtünk többek között a virtuális gépek kezelésével, alapvető Linux műveletekkel, a Python alapjaival, valamint a PowerShell szkriptek készítésének bevezető lépéseivel. 4 További információ Linux [1] Szandi Lajos, Leírás a Unix használatáról, BME HIT, [2] Python Software Foundation. The Python Tutorial. [3] Google, Google s Python class, (még Python 2.x!) Windows [4] Soós Tibor, Microsoft PowerShell 2.0 rendszergazdáknak elmélet és gyakorlat, 2010, 21
Linux, Python és PowerShell alapok
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Linux, Python és PowerShell alapok Gyakorlati útmutató Készítette: Micskei Zoltán, Szatmári Zoltán, Horányi
Linux, Bash és PowerShell alapok
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Linux, Bash és PowerShell alapok Gyakorlati útmutató Készítette: Micskei Zoltán, Szatmári Zoltán Utolsó módosítás:
Linux, Python és PowerShell alapok
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Linux, Python és PowerShell alapok Gyakorlati útmutató Készítette: Micskei Zoltán, Szatmári Zoltán, Horányi
II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK
Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot
Szkriptelési feladat megoldása
Intelligens rendszerfelügyelet (VIMIA370) Szkriptelési feladat megoldása Micskei Zoltán http://mit.bme.hu/~micskeiz Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Youtube videó letöltés és konvertálás Linuxon
Youtube videó letöltés és konvertálás Linuxon A szkript futtatásához szükségünk van 2 program telepítésére (youtube dl, mencoder), ezeket a következő parancs kiadásával tudjuk a legegyszerűbben telepíteni:
4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.
Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a
Operációs rendszerek gyak.
Operációs rendszerek gyak. Linux alapok III., Bash Cirok Dávid Hirling Dominik Szegedi Tudományegyetem Cirok.David@stud.u-szeged.hu Hirling.Dominik@stud.u-szeged.hu Linux alapok III., Bash 1 Linkelés 2
Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt
Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt segédlet A Szilipet programok az adatok tárolásához Firebird adatbázis szervert használnak. Hálózatos
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 9. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Shell
Szkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 9. óra. Kocsis Gergely, Kelenföldi Szilárd
Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása 9. óra Kocsis Gergely, Kelenföldi Szilárd 2015.04.30. PowerShell PowerShell alapok Bemutatás: 2006 PowerShell 1.0 Telepíthető
I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK
Mérési Utasítás Alapvető Linux/UNIX parancsok A terminál. A Linux és a UNIX, multi taszkos, több felhasználós rendszerek. A több feladat végrehajtásához egy (vagy akár több) felhasználó több terminálon
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
Oktatási cloud használata
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnikai és Információs Rendszerek Tanszék Oktatási cloud használata Készítette: Tóth Áron (BME MIT), 2013. A segédlet célja a tanszéki oktatási cloud
1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
AWK programozás Bevezetés
09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá
chmod umask chown, chgrp
5. Gyakorlat chmod umask chown, chgrp csak a tulajdonos tudja átállítani ezeket a jogokat r=4, w=2, x=1 pl:r+x=5 s-setuid bit /root jogosultságot igénylőprogramokhoz (u=rwxs) chmod 751 proba.txt chmod
Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.
Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód
Delphi programozás I.
Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban
Java-s Nyomtatványkitöltő Program Súgó
Java-s Nyomtatványkitöltő Program Súgó Hálózatos telepítés Windows és Linux operációs rendszereken A program nem használja a Registry-t. A program három könyvtárstruktúrát használ, melyek a következők:
Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés
Bevezetés az informatikába, második gyakorlat Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés Bevezetés Parancsértelmező (bash) Utasítások man Szövegszerkesztők Bash Különféle
Powershell 1. gyakorlat
Ahhoz, hogy kipróbálhassátok az előre elkészített anyagokat, be kell állítani a Set-ExecutionPolicy ExecutionPolicy RemoteSigned A ps1 kiterjesztésű fájlok a.\névvel indíthatóak 1. Mit hallottak előadáson
Utolsó módosítás: március 3.
Utolsó módosítás: 2014. március 3. 1 Ez egy gyorsan összedobott megoldás, majd a gyakorlati anyagok közé bekerül egy szép változat is: -------------------------------- $AccessToken = "XXXXXX" $friendsuri
Hardver és szoftver követelmények
Java-s Nyomtatványkitöltő Program Súgó Telepítési útmutató Hardver és szoftver követelmények A java-s nyomtatványkitöltő program az alábbi hardverigényt támasztja a számítógéppel szemben: 400 MHz órajelű
Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)
man!!! Man Munka állományokkal cd :az aktuális könyvtár (.) beállítása (alapesetben a ~ könyvtárra) pwd: aktuális könyvtár kiiratása mkdir: új könyvtár létreh cp: másolás -r, -R: rekurzív (könyvtár) mv:
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek
Linux alapok Parancsok általános alakja parancs kapcsolók paraméterek Könyvtárszerkezet abszolút útvonal útvonal megadása a gyökérből kiindulva / gyökérkönyvtár relatív útvonal útvonal megadása az aktuális
Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH bevezetés, script írása, futtatása Operációs rendszerek 4. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
Operációs Rendszerek. Windows Parancssor
Operációs Rendszerek. Windows Parancssor a parancssor a világ legjobb felülete Miért jó a parancssor? Szinte minden beállítást meg lehet oldani Automatizálás parancssorbol egyszerű pl: ürítsen egy könyvtárat
BASH SCRIPT SHELL JEGYZETEK
BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...
PowerShell v2.0 alapok. Nagy Miklós
PowerShell v2.0 alapok Nagy Miklós Kezdetek, Felhasználás 2006-ban létrejött egy új script nyelv, mely Window Vista-ban, és Windows Server 2008-ban telepíthető opcióként jelenik meg. (PowerShell 1.0) Automatizáció
Jelszóváltás a ludens gépen
Jelszóváltás a ludens gépen Az alábbi ismertető feltételezi, hogy Windows alapú gépet használunk, és innen szeretnénk megváltoztatni meglevő ludenses jelszavunkat. Az ismertető elkészítésekor Windows XP
Hálózati adminisztráció Linux (Ubuntu 8.04) 7. gyakorlat
Hálózati adminisztráció Linux (Ubuntu 8.04) 7. gyakorlat Johanyák Zsolt Csaba 1 1. Belépés és fájlkezelés Azonosító: hallgato Jelszó: hallgato Átváltás karakteres konzolra: Ctrl+Alt+F1.. Visszaváltás grafikus
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,
Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
A legfontosabb DOS parancsok
A legfontosabb DOS parancsok A DOS parancsok általános formája: KULCSSZÓ paraméterek Az utasítások akár kis-, akár nagybetűkkel is írhatók, a DOS nem tesz köztük különbséget. A kulcsszó és az első paraméter
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
Operációs Rendszerek II. labor. 2. alkalom
Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
Műveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről
Műveletek makrókkal A munkafüzettel együtt tárolt, minden munkalapon elérhető makrót a Fejlesztőeszközök szalag Makrók párbeszédpanelje segítségével nyithatjuk meg, innen végezhetjük el a makrókkal megoldandó
IP-címhez kötött webszolgáltatások használata idegen IP-című gépről
IP-címhez kötött webszolgáltatások használata idegen IP-című gépről Bevezetés Hanák D. Péter, BME IIT, 2006. május 22. Ismeretes, hogy egyes webszolgáltatások csak meghatározott IP-című számítógépekről
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád berta@inf.u-szeged.hu www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 15:00-16:00-ig
Linux alapok gyakorlat
11. évfolyam, informatikai rendszerüzemeltető 2018. Témakörök (elméleti tárgyrész) 1. Kialakulása 2. Disztribúciók 3. Telepítés, bootloader 4. Csomagkezelés 5. Rendszer felépítése, kernel (könyvtárak,
file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>
I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >
BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!
BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA #A script bekér egy nevet és egy kort, majd kiírja a képernyőre echo -n "Adja meg a nevét: " read NEV echo -n "Adja meg az életkorát: " read KOR echo "Az Ön neve: $NEV, kora:
Munka állományokkal. mv: áthelyezés (átnevezés) rmdir: üres könyvtár törlése rm: törlés. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)
man!!! Man Munka állományokkal cd: az aktuális könyvtár (.) beállítása (alapesetben a ~ könyvtárra) pwd: aktuális könyvtár kiiratása mkdir: új könyvtár létrehozása cp: másolás -r, -R: rekurzív (könyvtár)
Felhasználói leírás a DimNAV Server segédprogramhoz ( )
Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6
RapidMiner telepítés i. RapidMiner telepítés
i RapidMiner telepítés ii COLLABORATORS TITLE : RapidMiner telepítés ACTION NAME DATE SIGNATURE WRITTEN BY Jeszenszky, Péter 2014. szeptember 17. REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Tartalomjegyzék
Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv
Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési
PHP-MySQL. Adatbázisok gyakorlat
PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen
LINUX PMB2506-2 LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB
LINUX PMB2506-2 LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB LINUX PARANCSOK ÉS HASZNÁLATUK ls: listázás -l részletes lista -a rejtett fájlok megjelenítése cp: fájlok másolása -i Már létező cél felülírása előtt
3Sz-s Kft. Tisztelt Felhasználó!
3Sz-s Kft. 1158 Budapest, Jánoshida utca 15. Tel: (06-1) 416-1835 / Fax: (06-1) 419-9914 E-mail: zk@3szs. hu / Web: http://www. 3szs. hu Tisztelt Felhasználó! Köszönjük, hogy telepíti az AUTODATA 2007
Smalltalk 2. Készítette: Szabó Éva
Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
Oralce kliens installálása Windows Server 2003-ra
Oralce kliens installálása Windows Server 2003-ra Szükséges elofeltétel Szükséges operációs rendszer: Windows 2003 SP1 Oracle kliens verzió: 9.2.0.1.0 (9R2) Valid SQLNet.ORA fájl, amely tartalmazza a céges
Rendszergazda Debrecenben
LEVELEZŐKLIENS BEÁLLÍTÁSA A levelezés kényelmesen kliensprogramokkal is elérhető, és használható. Ezen útmutató beállítási segítséget nyújt, két konkrét klienssel bemutatva képernyőképekkel. Természetesen
EDInet Connector telepítési segédlet
EDInet Connector telepítési segédlet A cégünk által küldött e-mail-ben található linkre kattintva, a következő weboldal jelenik meg a böngészőben: Az EdinetConnectorInstall szövegre klikkelve(a képen pirossal
Használati útmutató a Székács Elemér Szakközépiskola WLAN hálózatához
Használati útmutató a Székács Elemér Szakközépiskola WLAN hálózatához Készítette: Szentgyörgyi Attila Turcsányi Tamás Web: http://www.wyonair.com E-mail: 2008. november 8. TARTALOMJEGYZÉK TARTALOMJEGYZÉK
A Novitax ügyviteli programrendszer első telepítése
Telepítő fájl letöltése honlapunkról A Novitax ügyviteli programrendszer első telepítése A honlapunkon (www.novitax.hu) található telepítő fájlt (novitax2007-setup.exe) le kell tölteni a számítógép egy
Telepítési útmutató. 1.1 lépés : Telepítés típusa - ablak :
Telepítési útmutató 1.1 lépés : Telepítés típusa - ablak : Typical (Általános): A telepítéskor a program fájljai, az adatbázis kezel, valamint a súgó fájlok kerülnek telepítésre. (Abban az esetben ajánlott,
Operációs Rendszerek példatár. Utolsó frissítés: 2014. február 10.
Operációs Rendszerek példatár Utolsó frissítés: 2014. február 10. A példatár Szegedi Tudományegyetemen oktatott Operációs rendszerek tárgy gyakorlati anyagához illeszkedo feladatok sorát tartalmazza, mely
PDF. Tartalomjegyzék 1/21
PDF Napjainkban a publikálás elterjedt formája a PDF dokumentumok előállítása. A weben ez szinte szabvánnyá vált hosszú dokumentumok esetén. Akkor is nagyon hasznos lehet, ha a gondosan megformázott word
WIN-TAX programrendszer frissítése
WIN-TAX programrendszer frissítése A WIN-TAX programrendszert a verzió érvényességének lejártakor illetve jelentősebb változás esetén (pl.: elkészült fejlesztések, munkahelyi hálózati szinkronitás miatt)
Programozás alapjai. 1. - 2. óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján
Programozás alapjai 1. - 2. óra Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján Bemutatkozás Morvai Flórián Morvai.Florian@stud.u-szeged.hu csak egyetemi címről www.stud.u-szeged.hu/morvai.florian
SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ
SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ GIRODIRECT SZOLGÁLTATÁST IGÉNYBEVEVŐ ÜGYFELEKENEK Verzió: v1.04 Dátum: 2018. január 5. Készítette: A jelen dokumentum tartalma szerzői jogi védelem alatt áll, a mű
Programozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
Powershell 2. gyakorlat
Szkriptek készítése, folytatás Könyvtárban levő bejegyzések száma, mérete (Új: measure-object) /batch/ megszamol2.ps1 $hossz=(get-childitem measure-object -property length).count write-host ("konyvtarban
M-Fájlok létrehozása MATLAB-ban
M-Fájlok létrehozása MATLAB-ban 1 Mi az M-fájl Annak ellenére, hogy a MATLAB rendkívül kifinomult és fejlett számológépként használható, igazi nagysága mégis abban rejlik, hogy be tud olvasni és végrehajtani
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. Megjegyzés: Amennyiben kliens oldalon található
Operációs rendszerek gyakorlat
01 Operációs rendszerek gyakorlat Berta Árpád berta@inf.u-szeged.hu www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport, 45/A szoba Fogadó óra: hétfő 15:00-16:00-ig
Microsoft Office PowerPoint 2007 fájlműveletei
Microsoft Office PowerPoint 2007 fájlműveletei Program megnyitása Indítsuk el valamelyik tanult módszerrel a 2007-es verziót. Figyeljük meg, hogy most más felületet kapunk, mint az eddigi megszokott Office
Listák, szótárak, fájlok Listák, szótárak, fájlok
lista fogalma, használata listák másolása (alap szintű, teljes körű) szótárak fogalma, használata adatbázis alkalmazás fejlesztése műveletek fájlokkal (megnyítás, írás, olvasás, lezárás) rejtjelező alkalmazás
1.2. NFS kliens telepítése és beállítása
Hálózati adminisztráció Linux (Ubuntu 9.04) 10. gyakorlat Johanyák Zsolt Csaba 1 NFS és Samba szolgáltatások telepítése és beállítása Az NFS segítségével könyvtárakat oszthatunk meg Linux operációs rendszert
Vectory telepítési útmutató
Vectory telepítési útmutató A vectory kliens programja egy vyw.exe valamint egy bejelentkezes.ini nevű fájlból áll. A vyw.exe-nek és a bejelentkezes.ini-nek egy közös könyvtárba kell kerülniük. Könyvtárak,
Mechatronika segédlet 6. gyakorlat
Mechatronika segédlet 6. gyakorlat 2017. március 13. Tartalom Vadai Gergely, Faragó Dénes Feladatleírás... 2 LinuxCNC... 2 Telepítés Oracle Virtualbox-ra... 2 Megosztott vágólap beállítása... 4 Indítás,
PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv
PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló
POSZEIDON dokumentáció (1.2)
POSZEIDON dokumentáció (1.2) Bevezetés a Poszeidon rendszer használatába I. TELEPÍTÉS Poszeidon alkalmazás letölthető: www.sze.hu/poszeidon/poszeidon.exe Lépések: FUTTATÁS / (FUTTATÁS) / TOVÁBB / TOVÁBB
Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
FTP Az FTP jelentése: File Transfer Protocol. Ennek a segítségével lehet távoli szerverek és a saját gépünk között nagyobb állományokat mozgatni. Ugyanez a módszer alkalmas arra, hogy a kari web-szerveren
VisualBaker Telepítési útmutató
VisualBaker Telepítési útmutató Office Hungary Bt web: www.visualbaker.hu e-mail: info@visualbaker.hu Tartalomjegyzék: Telepítési útmutató... 1 Tartalomjegyzék:... 2 Első lépések:... 3 Telepítési kulcs...
Operációs rendszerek 1.
Operációs rendszerek 1. Fájlkezelés Balla Tibor balla.tibor@inf.unideb.hu Fájlrendszer: Könyvtárak és Fájlok Inode szuperblokk inode tábla tényleges lemezterület inode = index-node Az inode tábla egy fix
A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program
A GeoEasy telepítése GeoEasy V2.05 Geodéziai Feldolgozó Program (c)digikom Kft. 1997-2008 Tartalomjegyzék Hardver, szoftver igények GeoEasy telepítése A hardverkulcs Hálózatos hardverkulcs A GeoEasy indítása
Python tanfolyam Python bevezető I. rész
Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények
Tájékoztató. Használható segédeszköz: -
A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés azonosítószáma és megnevezése 52 481 02 Irodai informatikus Tájékoztató A vizsgázó az első lapra írja fel a nevét!
Linux parancsok összefoglaló.
Linux parancsok összefoglaló. pwd: Kiírja az aktuális könyvtár abszolút elérési útvonalát. cd : Belép a paraméterként átadott könyvtárba, vagy könyvtárszerkezetbe. A könyvtárat
A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,
A belső hálózat konfigurálása
DHCP A belső hálózat konfigurálása Hozzuk létre a virtuális belső hálózatunkat. Szerver (Windows 2012) SWITCH Kliens gép (Windows 7) Hálózati kártya (LAN1) Hálózati kártya (LAN1) Állítsunk be egy lan1
Kézikönyv Mandant másolás HILFE menüben
Kézikönyv Mandant másolás HILFE menüben Tartalomjegyzék 1 4 2 TARTALOM... 5 3 PROGRAM MANAGER... 7 4 PUTTY CONFIGURATION... 9 5 10.0.0.236 - PUTTY... 10 6 PROGRAM MANAGER... 22 7 ÖSSZEFOGLALÁS... 23 8
E-Freight beállítási segédlet
E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet
Az internet ökoszisztémája és evolúciója. Gyakorlat 1
Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,
X. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK. Mérési utasítás
Mérési utasítás 6to4 A 6to4 A 6to4 segítségével az IPv6 képes eszközök egy csak IPv4-et támogató környezetben képesek IPv6 segítségével kommunikálni. Ehhez az RFC 3056-ban rögzített automatikus tunnelt
1_Linux_bevezeto_bash
1_Linux_bevezeto_bash September 21, 2016 1 Számítógépes alapismeretek 1.1 ELTE - Fizika Bsc 1. évfolyam 1.2 # Félévés tematika: Linux alapismeretek Szövegszerkesztés Adatok ábrázolása Bevezetés a programozás
FITNESS SYSTEM Telepítési útmutató
FITNESS SYSTEM Telepítési útmutató web: www.szakk.hu e-mail: info@szakk.hu Tartalomjegyzék: Első lépések:... 3 Licenc megállapodás... 3 Telepítési kulcs... 4 Felhasználói adatok... 5 Telepítő csomagok
Cisco Catalyst 3500XL switch segédlet
Cisco Catalyst 3500XL switch segédlet A leírást készítette: Török Viktor (Kapitány) GAMF mérnökinformatikus rendszergazda FOSZK hallgató, Hálózatok II. tárgy Web: http://prog.lidercfeny.hu/ Források: Medgyes
Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán
Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán A QGIS program GPS eszközök modulja segítségével kétirányú kommunikációt folytathatunk a navigációs GPS vevőnkkel.
Windows hálózati adminisztráció segédlet a gyakorlati órákhoz
Windows hálózati adminisztráció segédlet a gyakorlati órákhoz Szerver oldal: Kliens oldal: 4. Tartományvezérlő és a DNS 1. A belső hálózat konfigurálása Hozzuk létre a virtuális belső hálózatunkat. INTERNET
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 9. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Shell
Szathmáry László Debreceni Egyetem Informatikai Kar
Szathmáry László Debreceni Egyetem Informatikai Kar 1. Gyakorlat bevezető JSON telepítés (utolsó módosítás: 2018. szept. 12.) 2018-2019, 1. félév MongoDB https://www.mongodb.com/ A MongoDB egy nem-relációs,