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



Hasonló dokumentumok
Operációs rendszerek 1.

Számítógép architektúrák. A mai témáink. A Unix. A burok

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

BASH SCRIPT SHELL JEGYZETEK

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

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)

chmod umask chown, chgrp

Szkriptnyelvek. 1. UNIX shell

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

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

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

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

OPERÁCIÓS RENDSZEREK II GYAKORLAT

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

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. #!

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

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)

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

Unix-Linux alapok II. gyakorlatvezető: Lutár Patrícia

Programozás alapjai gyakorlat

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

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

Számítógép architektúrák. Felhasználói felületek, kezelők. Szokásos két osztályuk. Felhasználói felületek

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

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

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

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

Linux parancsok összefoglaló.

Rendszerprogramozás Linux környezetben

1. Alapok. #!/bin/bash

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

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

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.

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

Operációs rendszerek gyak.

OPERÁCIÓS RENDSZEREK. Az OS kernel felületei. A rendszerhívások. Felületek a kernelhez: a burok és az API

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

Linux kezelés alapjai

Számítógép architektúrák. Felhasználói felületek

Operációs rendszerek I. IIII. gyakorlat

PCLinuxOS Magazine május

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

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

AWK programozás Bevezetés

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

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

6. BASH programozás I.

Alapfogalmak a héj (shell) használatához

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

Pere László Linux: felhasználói ismeretek I. Az alapok


Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

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

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

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.

Programozás I. gyakorlat

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

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

Operációs Rendszerek. Windows Parancssor

Az állományok kezelésére használt fontosabb parancsok

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

Operációs rendszerek 1.

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

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

Bash Shell Programozás. 1. oldal

A sed folyamszerkesztő

Munkavegzes tavoli bejelentkezessel

Hálózatok építése és üzemeltetése

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

Néhány kihagyhatatlan Linux tipp és trükk. Ezeket a tippeket olvasóink osztották meg velünk

2018, Funkcionális programozás

Számítógépes alapismeretek

A héj vezérlő szerkezetei I.

Operációs Rendszerek II. labor alkalom

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

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

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).

Bevezetés a UNIX rendszerekbe

INFORMATIKA javítókulcs 2016

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

Flex tutorial. Dévai Gergely

A számok kiíratásának formátuma

Operációs rendszerek gyakorlat

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

Operációs rendszerek 1.

Konzolalkalmazások gyors tesztelése

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

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

Outlook Express használata

6_complex_feladatok. October 26, 2016

Regionális forduló november 18.

Dr. Iszály György Barna

Alapfogalmak a héj (shell) használatához

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

Operációs rendszerek 1.

A sed folyamszerkesztő

A legfontosabb DOS parancsok

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

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

Átírás:

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

Téma Levelezés. Adatcsatornák, átirányítás. Visszatérési érték. -> Vezérlésben fontos. Metakarakterek, kvótázás. Parancs, csővezeték, parancslista. Jobkezelés, Szűrők

Levelezés a tanszéken Mindenkinek van saját E-mail címe! felhasználónév@iit.uni-miskolc.hu

Levelezés a tenszéken Több mód van rá, hogy kezeljük levelezőfiókunk. 1.: webmail.iit.uni-miskolc.hu (sajnos hitelesítési hiba van, de semmi nem lehet tökéletes ) 2.: Külső levelező klienssel. Bővebben a szolgáltatások doksiban.

Levelezés a tanszéken 3.: Linux programok: pine, mutt, mail $ mail --help $ mail -s tárgy cím@cim.hu [enter] Ide jön az üzenet szövege, ha kész CTRL+D [enter] cc: {vagy megadod, vagy nem}

pine Levelező program. CUI. c levél küldés m főmenübe lép q kilépés COMPOSE MESSAGE -> üzenet írása FOLDER LIST -> bejövő üzenetek

mutt Levelező program. CUI. Színes, csicsa Q kilépés M levélírás Y levélküldés G bejövő levelek megnézése Levél szövegének írására vi t használ

A burok processz Önálló entitás, azonosítója a pid (process identification number) A /bin/sh (vagy /bin/bash) program fut benne Van 3 nyitott adatfolyama A 0 leírójú stdin (szabványos bemenet), ahonnan a parancsokat, csöveket, parancslistákat olvassa. Az 1 leírójú stdout (szabványos kimenet), ahová az eredményeit írja. A 2 leírójú stderr (szabványos hibakimenet), ahová a hibaüzeneteit írja.

Szabványos csatornák Kifejezés Rövidítés Fájl-leíró Szabványos eszköz Szabványos adatbevitel stdin 0 Billentyűzet Szabványos adatkivitel stdout 1 Konzol Szabványos hibaüzenet stderr 2 Konzol A szabványos adatbevitel és adatkivitel elvét a UNIXban találták ki. A shell lehetővé teszi a szabványos csatornák átirányítását a,,>'' és a,,<'' (kacsacsőr-jelek) segítségével. Parancsok végrehajtásának eredményét a következő módon tudjuk fájlba irányítani: zsiga@debian:~$ ls >lista

Szabványos csatornák Így az ls parancs kimenete nem jelenik meg a képernyőn, hanem beleíródik a lista nevű fájlba. Ebben az esetben, ha nem létezett a lista nevű fájl, akkor létrejön, ha létezett, akkor felülíródik. Abban az esetben, ha nem felülírni, hanem hozzáfűzni szeretnénk egy létező fájlhoz, akkor a következő formában kell kiadnunk a parancsot: zsiga@debian:~$ ls >>lista Azok a parancsok, amelyek a szabványos adatbeviteli csatornáról várnak adatokat, az átirányítás révén az adatbevitelt fájlból is megkaphatják: zsiga@debian:~$ cat <lista

Lehetséges a szabványos hibacsatorna átirányítása is. Erre például abban az esetben lehet szükségünk, ha a háttérben indítjuk el egy program futását, de látni szeretnénk, ha valami probléma támadt a futása közben. broda@debian:~$ ls > lista 2> error Tehát először az ls parancs eredményét átirányítjuk a lista nevű fájlba, ugyanakkor a hibaüzeneteket átirányítjuk az error nevű fájlba. Több csatornát is átirányíthatunk egyszerre. A cső (pipe) segítségével átirányíthatjuk az egyik parancs kimenetét egy másik parancs bemenetére. broda@debian:~$ who sort

cat > lista //szerkeszteni lehet a lista fájlt (ctrl+c) ls -l > lista.txt ls >> lista cat lista.txt //szóköz bármennyi lehet 0- echo Szöveg1 > proba1.txt cat proba1.txt echo Szöveg2 > proba2.txt cat proba2.txt cat proba1.txt proba2.txt > proba.txt

Visszatérési érték Lehet normális (0), Lehet nem normális (nem 0), ennek oka többféle: valami hiba van, nincs hiba, de szemantikailag van gond. (Pl. grep szűrő nem talál minta-egyezést, vagy test parancs tesztelése nem igaz.) A visszatérési értéket a programvezérlésben használhatjuk majd.

Visszatérési érték példa $ test f.bash_history ; echo $? > 0 $ test d.bash_history ; echo $? > 1 $? -> belső változó!

Metakarakterek (reguláris kifejezések) tömören írhatunk le vele általános karaktermintákat,. vagy? bármely 1 karakterre illezkedik * 0 vagy több bármilyen karakterre illeszkedik + a megelőző kifejezés egyszeri vagy többszöri előfordulására illeszkedik (a zeuson nem működik) *..+ zárójelbe tett karakterek egy, a zárójelben megadott karakterre illeszkednek; pl: [0-9a-z] az összes számjegyre és a kisbetűkre illeszkedik (angol abc) *^..+ bármely egy karakterre illeszkedik, ami nincs felsorolva a zárójelben; pl: [^0-9] bármely egy karaktert helyettesíthet, mely nem szám. ^ sor elejére illeszkedik $ sor végére illeszkedik

Metakarakterek semlegesítése (quotázás): echo * echo * echo \* echo vagy echo Idézőjelet a másik típusú idézőjellel tudunk semlegesíteni. $ echo * $ echo \*

Ismételjük: a parancs fogalma Fehér karakterekkel határolt szavak sora első szó a parancs neve, többi szó az argumentumok. Az sh beolvassa, értelmezi, átalakítja, végrehajtja saját maga (belső p.), gyermek processzben (külső p.) Mindkét esetben van visszatérési értéke! Vannak szabványos adatfolyamok!

A csővezeték fogalma A csővezeték (pipe) parancsok sora operátorral összekötve: parancsbal parancsjobb Szemantikája: végrehajtódik a parancsbal, szabványos kimenete egy csőbe képződik, majd végrehajtódik a parancsjobb, aminek szabványos bemenete erre a csőre képződik. A cső visszatérési értéke: a parancsjobb visszatérési értéke. A parancs degenerált cső. Példa: $ ypcat passwd grep kovacs

A parancslista Csővezetékek sora listaoperátorral összekötve: csőbal op csőjobb Listaoperátorok: && # magasabb precedencia, de alacsonyabb mint a & ; \n # alacsonyabb precedencia A szemantika: ; \n soros végrehajtása a csöveknek & aszinkron végrehajtás (csőbal háttérben) && folytatja a listát, ha csőbal normális visszatérésű folytatja a listát, ha a csőbal nem normál visszatérésű

Parancslisták A lista visszatérési értéke az utolsó cső visszatérési értéke. Háttérben futó cső visszatérési értéke különlegesen kezelhető. A cső degenerált lista (ahol ezentúl listát írunk, írhatunk csövet, sőt parancsot is!) A && és operátoros listáknál először láthatjuk a visszatérési érték értelmét! Valóban a vezérlés menetét befolyásoljuk!

Példák $ cd ide && rm junk # csak akkor töröl, ha... $ ls ide cp valami ide # ha nincs ide, készíti $ ( mv a tmp && mv b a ) && mv tmp b

Processzek (job, taszk, folyamat) sort < lista >eredmény //a shell végrehajtja, majd megjelenik a prompt sort < lista >eredmény & //a shell nem várja meg a program befejeződését, hanem megjelenik a folyamat PIDje és a prompt háttérprocessznek nem interaktív programok alkalmasak, amik nem olvasnak a billentyűzetről és nem írnak a képernyőre; egy háttérprocessz kap egy jobszámot és egy processzazonosítót; ne futtassunk a háttérben olyan processzt, mely interaktív, mert összekuszálja a képernyőnket

Job vezérlés ^z (ctrl+z) fel lehet függeszteni vele egy processz futtatását fg (foreground) paranccsal lehet előtérbe hozni pl: mcedit ->^z; cat lista -> ^z //2 felfüggesztett jobunk van jobs - a felfüggesztett jobokat lehet kilistázni vele jobs -l kírja a PID-et is fg [%job] újra fut a processz (%1, %mcedit) fg esetén az aktuálisat a + - al megjelöltet fogja indítani, amit utójára függesztettünk fel bg paranccsal egy felfüggesztett jobot lehet a háttérbe küldeni. (akkor jó ha egy processzt normál módon indítottunk és később felfüggeszthetjük és a háttérbe küldhetjük) ps kill -9 szignált küld

Szűrők Adatot olvas, valamilyen műveletet hajt végre rajta, majd az eredményt kiírja a kimenetre.

cat legegyszerűbb szűrő; olvassa az adatot nem hajt végre rajta semmilyen műveletet és kiírja az stdin-re. cat lista cat > lista cat lista1 lista2 > lista

head head -x a bemeneten kapott szöveg x számú első sorát írja ki. $ ls > lista; cat lista head 5

tail az opciónak megfelelő számú sort ad vissza a beolvasott adat végéből $ cat lista tail +3 //a lista fájl tartalmát a 3. sortól a végéig kiírja $ cat lista tail -4 //a lista fájl utolsó 4 sorát írja ki $ cat lista tail -3 head -1 //a lista fájl 3. sorát

more Lapozó szűrő. Ilyen még a less és a pg is. $ more lista $ cat lista more $ cat lista less //q-val lehet kilépni

grep Mintát keres a megadott szövegben. grep *kapcsolók+*minta+*file+ visszatérési értéke: 0 talált mintát 1 nem talált mintát >1 error

grep kapcsolók: -c -- azoknak a sorok számát adja vissza, melyekben megtalálta a mintát; -i/y -- nem különbözteti meg a kis és nagybetüket; -n -- kiírja, hogy hányadik sorban találta meg a mintát; -l -- ha több fájlban is keresünk, kiírja, hogy melyikben találta meg a mintát; -w -- csak teljes szavakat keres; -v -- azokat a sorokat adja vissza, melyek nem tartalmazzák a mintát; ls grep list* kezdetű fájlokat grep l m lista* megtalálta a mintát //kiírja a munkajegyzékben található list //azon fájlok nevét írj ki, amelyekben

sort Rendezi az állományt. sort -u :az azonos sorokból csak egyet hagy meg sort -o lista :lista -rendezette teszi a lista állományt sort -r lista :visszafelé rendezi a lista állományt sort -f lista :hatására a kis és nagybetűket egyformán fogja kezelni sort lista

wc Karaktereket, sorokat és szavakat lehet vele számolni. wc -c lista -megszámolja, hogy hány karakter van a lista fájlban wc -l lista -sorokat wc -w lista szavakat pl: who wc l bejelentkezve //hány felhasználó van

uniq rendezett adatokon végez szűrést az opcióknak megfelelően. uniq -c lista -kirja, hogy a melyik sor hányszor szerepel a fájlban sort -o lista lista; cat lista.txt uniq c //megszámolja, hogy melyik sor hányszor szerepel benne

cut Oszlopot vág ki a szövegből. cut -c1,3-4 lista -a lista fájlból csak a 1,3,4.oszlopokat írja ki. rwho cut -c1-8 cut f4,5 d: /etc/passwd //a /etc/passwd állományból a 4,5 oszlopot fogja kiírni, mivel a mezőelválasztó karakter :

tr char1 -et char2 -re cseréli cat lista tr lista korte //a lista karaktereit a korte megfelelő karaktereire cseréli cat lista tr -c A-Za-z @ //ami nincs benne a megadott karakterek között, azt @-ra cseréli cat lista tr -c a-df-z @ cat lista tr -s a f //akárhányszor szerepel az a mindig csak f -t ír helyére cat lista tr -d al //törli a lista-ból az al karaktereket

rev fordítva írja ki soronként a fájl tartalmát cat lista rev

tee Csővezeték szétágaztatása. cat lista tee lista1 more cat lista tee lista1 lista2 more cat lista tee lista1 lista2 head 10 cat lista tee lista1 head -10 tee lista4 tail 3 cat