Készítette: Petróczy Tibor Rendszerprogramozás Linux környezetben 1 Rendszerprogramozás Linux környezetben 1. Unix shellek és shell scriptek Miért, és mikor: - használtál már UNIX/Linux rendszert - ismered a rendszer alapfilozófiáját - nem a GUI felület az elsődleges - hatékony és gazdaságos üzemeltetés A shell tulajdonságai: - parancsértelmező és programozási nyelv - a parancsokat a standard inputról vagy állományból olvassa - shell script segítségével egyszerűen bővíthető a parancskészlet - paraméterezhető (kapcsolók) - string változókra és vezérlési szerkezetekre épül - egyszerű átirányítás (>, <) - csővezeték használata - beépített parancsok használhatósága Shell részletesebb ismertetése a „Linux alapismeretek” alatt. Shellek beállítása alapvetően az /etc/profile fájl alatt érhető el. (~/.profile, ~/.bach_profile…) Shell script futtatása: - shell-en keresztül -> /bin/sh fájlnév - futtathatóvá kell tenni -> chmod 700 fájlnév, majd ./fájlnév - sticky bit használata (más jogosultságával való futtatás) - kezdő sor a shell elérési utja: #!/bin/sh Futtatáskor alapvetően 2 hiba fordulhat elő, az egyik, hogy maga a script állomány nincs futtatható állapotra állítva, a másik pedig, hogy olyan helyről szeretnénk futtatni az állomány, amely nincs benne a PATH-ban. Parancsok: - Ctrl-C: program futásának megszakítása - Ctrl-D: programból való kilépés (exit) - Ctrl-Z: program futásának felfüggesztése (jobs, fg %n)
13
Embed
Rendszerprogramozás Linux környezetben - ptibor.netbuild.huptibor.netbuild.hu/tananyag/linux/shell_script.pdf · Rendszerprogramozás Linux környezetben 1 Rendszerprogramozás
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Készítette: Petróczy Tibor Rendszerprogramozás Linux környezetben
1
Rendszerprogramozás Linux környezetben
1. Unix shellek és shell scriptek
Miért, és mikor:
- használtál már UNIX/Linux rendszert
- ismered a rendszer alapfilozófiáját
- nem a GUI felület az elsődleges
- hatékony és gazdaságos üzemeltetés
A shell tulajdonságai:
- parancsértelmező és programozási nyelv
- a parancsokat a standard inputról vagy állományból olvassa
- shell script segítségével egyszerűen bővíthető a parancskészlet
- paraméterezhető (kapcsolók)
- string változókra és vezérlési szerkezetekre épül
- egyszerű átirányítás (>, <)
- csővezeték használata
- beépített parancsok használhatósága
Shell részletesebb ismertetése a „Linux alapismeretek” alatt.
Shellek beállítása alapvetően az /etc/profile fájl alatt érhető el. (~/.profile, ~/.bach_profile…)
Shell script futtatása:
- shell-en keresztül -> /bin/sh fájlnév
- futtathatóvá kell tenni -> chmod 700 fájlnév, majd ./fájlnév
- sticky bit használata (más jogosultságával való futtatás)
- kezdő sor a shell elérési utja: #!/bin/sh
Futtatáskor alapvetően 2 hiba fordulhat elő, az egyik, hogy maga a script állomány nincs futtatható
állapotra állítva, a másik pedig, hogy olyan helyről szeretnénk futtatni az állomány, amely nincs
benne a PATH-ban.
Parancsok:
- Ctrl-C: program futásának megszakítása
- Ctrl-D: programból való kilépés (exit)
- Ctrl-Z: program futásának felfüggesztése (jobs, fg %n)
2
2. Shell alapelemek
Fontosabb környezeti változók:
- $HOME: login katalógus neve
- $PATH: keresési út a programok végrehajtásához
- $MAIL: elérési út ahova a mailjeink érkeznek
- $PS1: elsődleges prompt
- $PS2: másodlagos prompt
- $EDITOR: alapértelmezett szövegszerkesztő
- $PWD: aktuális munkakönyvtár
- $OSTYPE: operációs rendszer típusa
- $SHELL: jelenleg futó shell típusa
- $TERM: terminál típusa
- $RANDOM: véletlen szám
- $USER: aktuális felhasználói név
Változók használata:
- valtozo=ertek
- valtozo1=45
- valtozo2=”Test szoveg”
- értékadásnál nincs szóköz az egyenlőség bal és jobb oldalán!
- minden változót szövegként kezel
- a szöveget „…” jelek közé kell tenni
- változó kiíratása a $-jel használatával: echo $valtozo1
- ’…’ : betű szerinti kiíratás, ekkor nincs értelmezés, pl: echo ’Valtozo: $valtozo1’
- „…” : shell számára értelmes karaktereket értelmezi és behelyettesíti, pl: echo „Valtozo:
Jelen példában, a függvényünket 5 tetszőleges paraméterrel hívtam meg, és a függvény törzsében hivatkoztam a második meghívott paraméterre, így a képernyőre a következő sort írja ki: “Kiirjuk a 2. paramétert Második
8
6. Reguláris kifejezések
A reguláris kifejezések a UNIX/Linux rendszerek mélyebb megismerésénél nélkülözhetetlenek,
elsősorban felhasználási területük:
- keresések
- szűrések
- cserék
A szabályos, vagy reguláris kifejezésekkel vezérlhetjük a programokat.
Leggyakabban használt eszközök: grep, sed, awk
A “grep” a bemenetre érkező sorok közül csak azokat küldi a kimenetre, amelyek megfelelnek az
adott reguláris kifejezésnek (szűrési feltételnek).
A “sed” (Strem Editor) a megadott parancsok szerint módosítani is tudja a kimenetet (csere). Sor
alapú, de a teljes bemenetet egyben is kezelheti.
Az “awk” programozási nyelv szövegfeldolgozásra. Soronként kezeli a bemenetet, és a kimenetet
módosítani tudja, továbbá a sorokon belül mezőket is megkülönböztet (pozícionálás).
if (feltétel) utasítás else utasítás for(kifejezés1;feltétel;kifejezés2) utasítás for(változó in tömb) utasítás while(feltétel) utasítás break continue next exit
Beépített függvények: (eltérhetnek a különböző awk-k esetében)
- cos(kif): kifejezés koszinusza - exp(kif): kifejezés exponenciális függvénye - getline(): következő sor beolvasása, ha a visszatérési értéke 0, akkor fájl vége - index(s1,s2): s2 kezdő pozíciója s1-ben - int(kif): kifejezés egészrésze - length(s): s string hossza - log(kif): kifejezés logaritmusa - sin(kif): kifejezés szinusza - split(s,a,d): s-t d elválasztójel szerint a[1]…a[n] tömbelemekre osztja, visszatérési értéke n
13
- sprintf(fmt,…): a …-ot fmt formátum string szerint formázva adja vissza - substr(s,m,n): s string m-edik karaktertől kezdődő n karakteres része