BASH SCRIPT SHELL JEGYZETEK

Hasonló dokumentumok
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. #!

BASH script programozás II. Vezérlési szerkezetek

1. Alapok. #!/bin/bash

Operációs Rendszerek II. labor. 2. alkalom

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

S z á m í t ó g é p e s a l a p i s m e r e t e k

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

Szkriptnyelvek. 1. UNIX shell

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

AWK programozás, minták, vezérlési szerkezetek

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

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.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

AWK programozás, minták, vezérlési szerkezetek

AWK programozás Bevezetés

A héj vezérlő szerkezetei I.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek 1.

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

6. BASH programozás I.

További vezérlő valamint számításokat megkönnyítő szerkezetek

Rendszerprogramozás Linux környezetben

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

További vezérlő valamint számításokat megkönnyítő szerkezetek

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

Csatlakozás a pandora.inf.elte.hu-re Linux alapparancsok

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

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

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)

Számítógép Architektúrák. 4. Gyakorlat

Szűrők Reguláris kifejezések, AWK

A sed folyamszerkesztő

chmod umask chown, chgrp

8. Mezőutasítások. Schulcz Róbert 8. Mezőutasítások. v

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

Operációs rendszerek gyak.

Reguláris kifejezések 1.

S z á m í t ó g é p e s a l a p i s m e r e t e k

Szoftvertervezés és -fejlesztés I.

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Munka állományokkal, könyvtárakkal I.

Flex tutorial. Dévai Gergely

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)

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Gyors tippek linuxra

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás


Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

A shell vezérlő szerkezetei I.

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Powershell 2. gyakorlat

Operációs Rendszerek Gyakorlat

Bevezetés a programozásba I.

Operációs rendszerek I. IIII. gyakorlat

OPERÁCIÓS RENDSZEREK 1. ÁTIRÁNYÍTÁSOK, SZŰRŐK

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

A sed folyamszerkesztő

Operációs Rendszerek Gyakorlat Triviális segédfeladatok június PERL Tömbök és hashek Feladat: május 26-i beugró

Webprogramozás szakkör

INFORMATIKA javítókulcs 2016

Occam 1. Készítette: Szabó Éva

Operációs rendszerek MINB240/PMTRTNB230H

Operációs rendszerek gyak.

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

Az alábbiakban néhány Linux parancsra látunk példákat, feladatokat.

Linux parancsok összefoglaló.

Felvételi tematika INFORMATIKA

Operációs rendszerek 1.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

Lekérdezések az SQL SELECT utasítással

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Szkriptelési feladat megoldása

3 A C programozási nyelv szintaktikai egységei

Országzászlók (2015. május 27., Sz14)

A legfontosabb DOS parancsok

Regionális forduló november 18.

Tájékoztató. Használható segédeszköz: -

Számítógépek, számítógép rendszerek

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Programozás I. gyakorlat

Átírás:

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}... 6 (elemi_kifejezes_1 elemi_kifej_2)... 6 Vezérlési szerkezetek... 6 if... 6 case... 7 for... 8 while... 8 until... 8 Egyéb parancsok... 8 expr... 8 wc... 9 sort... 9 Megoltt feladatok... 9 until menü... 9 Online felhasználók kiírása... 10 2

Számjegyek összeadása... 10 Faktoriális kiszámító... 11 E-mail készítő... 11 3

PARAMÉTEREK #echo $1 $2 $3 echo "Paraméterek száma:" $# echo "Összes paraméter:" $@ #i=8 #echo "az $i-ik paraméter ${!i}" VÁLTOZÓK echo -n "Adja meg a változó értékét: " read VALTOZO echo A változó értéke $VALTOZO KÖRNYEZETI VÁLTOZÓK echo $HOME #A HOME könyvtárad elérési útját írja ki echo $PATH #A PATH változó azt tárolja, hogy milyen abszolút #útvonalakon keresse a Linux a futtatható állományokat echo $PWD #Az aktuális könyvtár elérési útvonala echo $USER #Az aktuális felhasználó echo $TERM #A terminális típusa echo $SHELL #A shell típusát tárolja SZŰRŐK GREP A grep parancs segítségével fájlokban vagy könyvtárakban kereshetünk megatt szavakat, szórészleteket. KAPCSOLÓK -c Kiírja az illeszkedést mutató sorok számát. -num -eminta -ffáj Az illeszkedést mutató sorok környezetükkel együtt lesznek kinyomatatva, azaz ezen sorok előtt és utáni num számú sor is nyomtatásra kerül. A mintá-t használja mintának. Hasznos, ha a minta-jellel kezdődik. A mintát a fájl-ból veszi. -i Nem különbözteti meg a kis- és nagybetűket sem a mintá-ban, sem a bemeneti fájlban. 4

-L Elhagyja a szokásos kimenetet, és csak azon fájlok neveit adja meg, amelyekből nem származna kimenet. -l Elhagyja a szokásos kimenetet, és csak azon fájlok neveit adja meg, amelyekből származna kimenet. -v Megfordítja az illeszkedés értelmét: a mintához nem illeszkedő sorokat választja ki. -w Csak azokat a sorokat választja ki, amelyekben az illeszkedés teljes szavakból származik. Azaz az illeszkedést mutató szövegrész előtt és után nem állhat betű, szám vagy aláhúzásjel. -x Csak teljes sorokkal való illeszkedést vizsgál. SED Stream editor, azaz folyamszerkesztő. A bemenetet a kimenetre másolja, de közben egy parancsokat tartalmazó szkriptnek megfelelően megszerkeszti. A leggyakrabban cserére használjuk, ilyenkor így kell megadni: sed 's/mit/mire/g' sed 's/mit/mire/g' fajl # a bemeneten bejön, kicseréli, a kimenetre kerül az eredmény # a fájlt olvassa be, kicseréli és a kimenetre kerül az eredmény KAPCSOLÓK sed 's/mit/mire/i' sed 's/mit/mire/gi' sed 's/mit/mire/' sed 's/mit/mire/g' # Kis- és nagybetűk között nincs különbsé, minden sorban legfeljebb egyszer cserél # Kis- és nagybetűk között nincs különbség, a teljes sorban akár többször is cserél # Van különbség a kis- és nagybetűk között; minden sorban legfeljebb egyszer cserél # Van különbség a kis- és nagybetűk között; a teljes sorban akár többször is cserél CUT A bemenet (standard input) vagy a paraméterben megatt fájlok minden sorának egy att részét vágja ki. $ cut -f2 # 2. mező (határolójel: tabulátor karakter) $ cut -f4,2 # 2.,4. mező - sorrend nem számít $ cut -f-4,6- # 4. mezőig és a 6.-tól Mező kivágása, a mezőelválasztó karakter megadásával: $ cut -f2 -d: # 2. mező, kettőspont az elválasztó $ cut -f2,6- -d' ' # szóköz az elválasztó karakter Oszlopok kivágása $ cut -c-3,6- # pontosan úgy, mint a -f opcióval, minden sor 3. karakteréig aztán a 6.-tól HEAD, TAIL A head a kapott szöveg elejét, a tail a végét adja tovább. head -n10 fájl cat fajl tail -n 10 # kiírja a fájl első 10 sorát # kiírja a fájl utolsó 10 sorát 5

REGULÁRIS KIFEJEZÉSEK Egy olyan, bizonyos szintaktikai szabályok szerint leírt kifejezés, amivel meghatározható szövegek egy halmaza. * Az elemi_egyseg egymás utáni 0, 1, 2,... előfordulása. A 0* reguláris kifejezésnek az üres szöveg vagy egy akárhány nullából álló jelsorozat felel meg. + Az elemi_egyseg egymás utáni 1, 2,... előfordulása a + reguláris kifejezésnek egy vagy több egymás utáni a betű felel meg. A + jel a kiterjesztett reguláris kifejezés karakterek közé tartozik, a grep parancs nem ismeri.? Az elemi_egyseg egymás utáni 0 vagy 1 előfordulása a -?28 reguláris kifejezésnek a 28 és a -28 sztringek felelnek meg. A? jel a kiterjesztett reguláris kifejezés karakterek közé tartozik, a grep parancs nem ismeri. {M,N} Az elemi_egyseg egymás utáni, legalább m-szeres, legfeljebb n-szeres előfordulása. Ha m=n, akkor elég {m} -et írni. Ha n nincs megadva (de a vessző igen), akkor végtelen. A log (sajnos) nem egységes, ugyanis előfordulnak olyan regkif megvalósítások, amikben a { és } helyett a \{ és \} párokat kell használni. (ELEMI_KIFEJEZES_1 ELEMI_KIFEJ_2) A () zárójelek között az elemi kifejezések (amelyek száma végtelen is lehet) csoportot alkot. Ezeket jellel szokás elkülöníteni egymástól melynek jelentése vagy, azaz vagy az egyik elemi_kifejezes vagy a másik elemi_kifejezes teljesül. MEGJEGYZÉS [] belsejében elvesztik speciális jelentésüket az egyéb, a reguláris kifejezés speciális jelei. A [.*] regkif-nek (csak) egy pont vagy egy csillag felel meg. VEZÉRLÉSI SZERKEZETEK IF # Beolvasunk egy számot, és eldönti a script, hogy kisebb, nagyobb vagy # egyenlő-e 10-zel. echo -n "Adjon meg egy számot: " read N if [ $N -lt 10 ] then 6

echo "$N kisebb 10-nél." else if [ $N -eq 10 ] then echo "$N egyenlő 10-zel." else echo "$N nagyobb 10-nél." fi fi MŰVELETI JELEK -eq -ne -lt -le -gt -ge equal (egyenlő) not equal (nem egyenlő) less than (kevesebb mint) less than or equal kevesebb (mint vagy egyenlő) greater than (nagyobb mint) greater than or equal (nagyobb mint vagy egyenlő) = equal string (két szöveg megegyezik)!= not equal string (két szöveg nem egyezik)! not (a kifejezés eredményének negáltja) -a and (és) -o or (vagy) CASE case $1 in "-d") date ;; "-w") who ;; "-l") ls ;; *) echo "Rossz paraméterrel futtatod." esac 7

FOR # 5-ször írja ki, hogy Hajrá Csepel! for i in {1..5} # vagy for i in `seq 5` echo "Hajrá Csepel!" ne WHILE # 5-ször kiírja, hogy Hajrá Csepel! i=1 while [ $i -le 5 ] echo "Hajrá Csepel!" i=$(( $i + 1 )) #i=`expr $i + 1` ne UNTIL # 5-ször kiíratunk valami szöveget i=1 until [ $i -gt 5 ] # until [! $i -lt 5 ] echo "Hajrá Csepel!" i=`expr $i + 1` ne EGYÉB PARANCSOK EXPR Matematikai műveletek elvégzése echo `expr 5 + 3` # Eredmény: 8 MŰVELETI JELEK + Összeadás 8

- Kivonás \* Szorzás \/ Osztás \% Osztási maradék WC Megszámolja a bemenetben lévő karakterek/szavak/sorok számát. KAPCSOLÓK -m A fájlban lévő karakterek száma. -c A fájlban lévő bájtok száma. -w A fájlban lévő szavak száma. -l A fájlban lévő sorok száma. $ echo "egy kettő három" wc w #Eredmény: 3 SORT Rendezi a bemenetét. KAPCSOLÓK -r Rendezi a fájl sorait fordított sorrendben -n A sorok elején álló számok szerint rendezi -u Az azonos sorokat csak egyszer írja ki MEGOLDOTT FELADATOK UNTIL MENÜ # Menürendszer készítése until ciklussal until clear echo "Válasszon az alábbi menüpontok közül!" echo echo "1. Másolás" echo "2. For ciklus példa" echo "3. While ciklus példa" 9

echo "4. Until ciklus példa" echo "0. Kilépés" echo echo -n "Adja meg a megfelelő számot: " read szam [ $szam -eq 0 ] case $szam in 1)./masol.sh ;; 2)./hajra_for.sh ;; 3)./hajra_while.sh ;; 4)./hajra_until.sh ;; *) echo "Ejnye-bejnye, rossz menüpontot adtál meg." esac sleep 3 ne echo "Örültem, hogy engem választott!" ONLINE FELHASZNÁLÓK KIÍRÁSA # Írjuk ki az éppen bejelentkezett felhasználókat! for i in `who cut -f1 -d" " sort -u` echo "$i bejelentkezett!" ne SZÁMJEGYEK ÖSSZEADÁSA # Bekér egy számot, majd összeadja a számjegyeket. echo -n "Írjon be egy számot: " read n sum=0 while [ $n -gt 0 ] sum=`expr $sum + \( $n \% 10 \)` n=`expr $n \/ 10` ne echo "A számjegyek összege: $sum." 10

FAKTORIÁLIS KISZÁMÍTÓ # Kiírja egy szám faktoriálisát. A szám paraméter. 0!=1 i=$1 faktorialis=1 while [ $i -gt 0 ] faktorialis=`expr $faktorialis \* $i` i=`expr $i - 1` ne echo "A $1 szám faktoriálisa: $faktorialis." E-MAIL KÉSZÍTŐ cat $1 sed 's/[ _]kukac[ _]/@/g; s/[ _]nospam[ _]/@/g; s/[ _]at[ _]/@/g; s/[ _]pont[ _]/./g; s/[ _]t[ _]/./g;' 11