.NET Microsoft.Net Framework és programozása II.

Hasonló dokumentumok
Powershell 1. gyakorlat

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

PowerShell v2.0 alapok. Nagy Miklós

Powershell gyakorlathoz.. Bővebben

Utolsó módosítás: március 3.

Powershell 2. gyakorlat

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

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 9. óra. Kocsis Gergely, Kelenföldi Szilárd

1. Alapok. #!/bin/bash

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

Szkriptelési feladat megoldása

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

Windows hálózati adminisztráció

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

BASH SCRIPT SHELL JEGYZETEK

PowerShell v2.0 alapok. Nagy Miklós

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

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

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

Az SQL*Plus használata

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

Operációs rendszerek gyak.

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

AWK programozás Bevezetés

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

Operációs Rendszerek. Windows Parancssor

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

Java és web programozás

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

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

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

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

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

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

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.

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

Operációs rendszerek I. IIII. gyakorlat

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

Szathmáry László Debreceni Egyetem Informatikai Kar

Informatika szintmérő-érettségi tételek február

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Szkriptnyelvek II. Perl programok

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

RIEL Elektronikai Kft v1.0

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

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Entity Framework alapú adatbáziselérés

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

PowerShell. Operációs rendszerek Windisch Gergely

RapidMiner telepítés i. RapidMiner telepítés

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

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

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

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

PDF. Tartalomjegyzék 1/21

Java és web programozás

Windows hálózati adminisztráció

Forráskód formázási szabályok

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.

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Osztályok. 4. gyakorlat

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

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

2017/01/27 08:59 1/6 Gettext Rendszer

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

chmod umask chown, chgrp

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

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ÉPES PROBLÉMAMEGOLDÁS

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Entity Framework alapú adatbáziselérés

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Microsoft SQL Server telepítése

A C# programozási nyelv alapjai

PCLinuxOS Magazine május

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

EDInet Connector telepítési segédlet

Globalizáció, Lokalizáció

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


Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

A legfontosabb DOS parancsok

4. Gyakorlat: Csoportházirend beállítások

Utolsó módosítás:

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

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

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

Első lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

ELTE SAP Excellence Center Oktatóanyag 1

Hálózati adminisztráció levelező tagozat 1. konzultáció vázlata Göcs László

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Java II. I A Java programozási nyelv alapelemei

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Átírás:

1.oldal.NET Microsoft.Net Framework és programozása II. Előadás jegyzet Előadó: Pócza Krisztián ELTE,2012 Windows PowerShell 1.0 Bevezetés A legtöbb operációs rendszerben beépítve találhatunk legalább egy shell, azaz valamilyen parancssoros parancs-értelmező alkalmazást. Van ahol csak pl. egy Windows (command), van ahol több, pl. (Linux Bash, Sh, Ksh stb). Ezekről a shell -ekről általában elmondható, hogy habár nagyon hasznosak, nem felelnek meg a mai objektum-orientált elvárásoknak. Pl. ha lekérjük egy könyvtár tartalmát, akkor egy string listát kapok vissza, nem FILE objektumokat. Tehát a feldolgozást igencsak megnehezíti, hogy ezeket még külön ki kell keresgélni a meghajtóról, ha további műveleteket akarunk végezni velük. A Powershell nem szöveg alapú (+ pipeok), mint mondjuk a Linux, ill. a legtöbb shell esetén, hanem objektum alapú (lehet pl. mezőkre hivatkozni egyszerűen) és teljesen.net kompatibilis. Habár a PowerShell nem része a Windows -nak( csak Win2008 -tól ), ingyenesen letölthető a Microsoft honlapjáról. ( www.microsoft.com )

2.oldal PowerShell 1.0 A PowerShell -ben (PS) a parancsok formája ige-főnév típusú pl. (Get-Help), de van lehetőség alias -ok definiálására is, amellett, hogy rengeteg beépített alias is van. Pl. az eddig kiadott parancsok listáját a h (history) paranccsal érjük el. Nagyon sok windows és linux parancs megtalálható alias -ként (dir, ls, ). Help parancs kilistázza a rendelkezésre álló parancsokat + alias okat: Azonban egy kényelmes Shell -nél többet kapunk. A PowerShell integrált a.net framework -el, ezért minden osztály használható, ami a.net-ben elérhető. Első lépések: A Powershell telepítése után Start menü Run powershell és meg is kapjuk a fenti képernyőt. Első parancsunk legyen a get-command. Ezzel egy elrettentő (vagy inkább ínycsiklandó) méretű listát kapunk a PowerShell cmdlet jeiről(azaz a PS saját parancsairól). Ha meguntuk a nézelődést, akár neki is kezdhetünk A get-help * kilistázza az összes súgó témát jó pár oldalnyi olvasnivalóval ellátva a user t. A help alias sal természetesen spórolhatunk, ill. UNIX ból érkezve otthonosabban érezhetjük magunkat. Annyi a különbség csupán, hogy a help használatakor oldalanként kapjuk meg a listát. A help <cmdlet> segítségével tovább bővíthetjük ismereteinket az alapvető utasításokról. Cmdlet jeink önmagukban nem sok mindent tudnak, de azt viszont NAGYON JÓL! Érződik, hogy szükség lenne némi paraméterezésre. Nem is vagyunk megfosztva ettől a lehetőségtől. Ismét felhívom a figyelmet, hogy itt nem karakterláncokat kapunk, hanem igazi objektumokat. Pl. a get-help help eredménye objektum, amelynek vannak metódusai. Ilyen metódus pl. a parameterlistát megjelenítő (get-help help).parameters is. Még mindig információszerzésre használható a get-member parancs is. <valami> get-member megmutatja bármely objektum adattagjait és metódusait. A fenti információhalommal felvértezve már bátran masírozhatunk gyakorlatiasabb területekre Változók létrehozása a $nev = <valami> szintaxissal történik. Típust nem kell neki adni. A jobb oldal értelemzése közben automatikusan rendel hozzá típust, amit a $nev.gettype() segítségével kérdezhetünk le.

3.oldal PS ben a szokásos változóértékek (integer, string blablabla idézőjelek között!, stb) mellett gyüjteményeket is adhatunk a változó értékéül. Továbbá a változók gond nélkül felüldefiniálhatók. Pl.: $a = text $a = get-alias * A get-variable valtozonev vel további, sokkal precízebb műveletek is elvégezhetőek. Megj.: a ${a} is érvényes, azaz a kapcsos zárójelek is használhatóak. Segítségükkel olyan változókat is megfoghatunk, amelyek egyébként érvénytelen néven lettek deklarálva. Escape karakter a (shift+1). Ezzel kiírathatunk lefoglalt karaktereket is pl. dollárjelet: $. Magyarázat nélkül próbáljuk ki a következőt: >$a = text >write-output Az a nevu valtozo $($a.length) karakterbol all. Pihenésképpen frissítsük fel DOS/UNIX előéletünket néhány egyszerű, de szerencsére átemelt paranccsal: dir ls copy cd.. mkdir mydir cd mydir cd C:\myDir cd.\mydir history notepad.\test.txt cat.\test.txt del test.txt help help history alias alias more stb Csővezetékek használata akár a UNIX ban. Mielőtt ezerrel nekiállnánk csövezni, bemutatok héhány eszközt, amellyel saját magunk rakhatunk össze cmdlet eket. Ez roppant hasznos, amennyiben a fent végigolvasott (és természetesen kívülről megtanult ) manual ban nem találnánk. Az első ilyen egy JOKER változónév a $_. Konkrétan arra jó, hogy a pipe on érkező objektumokra fog hivatkozni egyesével. Hogy ez mire is használható, rögtön értelmet nyer, amint bevezetjük Foreach-object {} et, amely talán nem meglepő módon a kiadott utasítást ( a {} zárójelek közötti rész ) fogja végrehajtani az összes érkező objektumon. Pl.: >1,2,3,4,5 foreach-object{$_ *2} Nem nehéz kitalálni, mi lesz az output. Soronként kiírja az 1-5 számok kétszeresét.

4.oldal A másik szerkezetet, az un. szelektáló : >2,4,6,8 where-object{$_ -gt 5} A gt kapcsoló a greater than rövidítése. Sajnos nem használhatjuk a szokásos relációs jeleket, hanem a nekik megfelelő rövidítéseket: -gt > -lt < -eq = -ne!= -ge >= -le <= Szerencsére nem kell mindig kiírni a foreach-object et. Helyette a % jel használható. ls % {$_.Length} ls % {$_.Length} sort Measure-Object ls % {$_.Length} sort unique Measure-Object Ha van egy egész számot tartalmazó first.txt fájlunk: cat first.txt %{"*"*$_} Ugyanígy a where-object kulcsszó rövidítése egy?. Pl. a Windows System32 -ből így szűrhetjük ki a dll -eket: cd C:\WINDOWS\system32 dir? {$_.Extension -eq ".dll"} A kimenet formázására való a write-host. Akit érdekel, írja be: >help write-host -full A Select akár az SQL ben. Megadhatjuk, hogy mely tulajdonságokra vagyunk kíváncsiak: ls Select FileName ls Select Name ls Select LastWriteTime, Name ls unique Rendezésre is ugyanilyen egyszerűen van lehetőség. ls select name sort Minden elérhető objektum kilistázása. Simán ls v* a v betűvel kezdődő állományokat listázza ki: ls group -Prop length ls v* gm Rekurzívan bejárja az alkönyvtárakat, és kilistázza a.cs kiterjesztésű file -okat: ls -Recu *.cs Csoportosításra is van módszer: dir select extension, name group extension help group ls Group-Object -Property Extension Az összes állományt kilistázza kiterjesztés szerint csoportosítva.

5.oldal Ha elakadtunk: help ls -examples -full A típus lekérdezésére szolgál a következő parancs: $a.gettype() (a zárójel jelzi, hogy magának az értéknek a típusát kérdezem) Egy Global Unique ID -t így kérhetünk: $a = [Guid]::NewGuid() [Guid]::NewGuid().ToString() [Guid]::NewGuid().ToString().Replace("-", "") Így pl. ha egy file listát kérünk nem egyszerű string -eket kapunk, hanem.net-es file objektumokat. (Pontosabban Object[] -et kapunk, mert könyvtárak és file -ok is lehetnek egy mappában.) Nem csak értékként kaphatunk vissza objektumokat, mi is létrehozhatunk ilyeneket: $a=[guid] [datetime]::now $d=new-object DateTime 1111, 11, 11 Itt $d egy új dátum objektum lesz. Egy objektumnak elkérhetjük az adattagjait is: $A Get-Members (ps -ProcessName iexplore).gettype() ha csak egy iexplore process van. A pipe technológia természetesen itt is megvan. Egy éppen futó Internet Explorer adattagjai: ([array](ps -ProcessName iexplore))[0] gm A tömbök kezelése is nagyon egyszerű, használjuk a @ jelet: $a=@(1,2,3,4,5,6,7) $a=@(1..7) Így tudjuk levenni az első elemét, ha arra van szükségünk: ($b, $c)=$a Ezután a $b-ben lesz $a első eleme, $c-ben pedig a többi. A többi shell -ben egyáltalán nem -vagy csak számottevő szintaktikai terhelés árán- lehet operátorokat használni. Itt: 1+1 >2 Sőt, ezt kiterjesztették különböző adattípusokra is: String többszörözés: 8 *4 >8888 String konkatenáció): a+1 >a1 A -match reguláris kifejezéseket is tud kezelni. Egy e-mail cím validáció elvégezhető így:

6.oldal > eha123@inf.elte.hu match ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$ Természetesen a jól ismert ciklusok és vezérlő szerkezetek is használhatók: for($i=1;$i -lt 10;$i++) {$_} for($i=1;$i -lt 10;$i++) {$i} $i = 1 while($i lt 5){ * * $i; $i++} $a=25 if($a gt 10) { nagyobb mint 10 } elseif($a lt 10) { kisebb mint 10 } else{ pontosan 10 } switch($a) { {$a gt 0} { pozitiv } {$a lt 0} { negativ } default { nulla } } Összegzés, Átlagolás, Minumum, Maximum: cat first.txt measure-object Sum Ezzel letölthető egy file a netről: (new-object System.Net.WebClient).DownLoadString(<ide jön az URL>) Pl.: $rss = [xml](new-object System.Net.WebClient).DownloadString("http://index.hu/24ora/rss/") $rss.rss.channel.item select title A.NET -es osztályok integrációjával lehetőség nyíilik paranccssori XML parse -olásra is. A providerek, amik lehetővé teszik, hogy olyan könnyen mozogjunk a registry key -ek közt, mint a meghajtók közt. Tulajdonképpen arról van szó, hogy akár a fájlrendszer, akár a registry bármely bejegyzéséhez társíthatunk egy megszólítást. Eztuán ugyanúgy kezelhető, mintha egy önálló meghajtó lenne: Get-PSDrive Saját PSDrive ot így hozhatunk létre: >new-psdrive name MyPS psprovider registry root HKEY_CURRENT_USER\Software >cd MyPS: A környezeti változók közt is lépkedhetünk: cd env: dir Az eventlog az események naplózására szolgál. Mind rendszer, mind alkalmazás szintű eseményeket tud rögzíteni. Ehhez a Windows ban található egy nézegető is, de ha rendszermérnökként használjuk a PowerShell -t, akkor kényelmesebb egy: Get-EventLog Application -newest 100 parancs.

7.oldal A WMI (Windows Management Instrumentation) a HW és az operációs rendszer beállítására szolgál. Ezek is elérhetőek a Get-WmiObject használatával. Pl: A soros port beállításai: Get-WmiObject Win32_SerialPortSetting COM -os objektumokat is használhatunk a PowerShell -el, pl. egy Internet Explorer ennyibe kerül csak: $ie=new-object -COM "InternetExplorer.Application" $ie.visible=$true $ie.navigate2("www.google.com") $ie.back() $ie Get-Member Távolról alapban nem lehet PowerShell -parancsot futtatni, csak ha direktben beállítjuk: Set_ExecutionPoilicy RemoteSigned Fóti Marcell előadása: http://www.microsoft.com/hun/dl.aspx?id=021e3c9a-87e9-4dc6-8d7b-9d141217600a További parancspéldák a tárgy honlapján.