PowerShell alapok. 2011. Október 4.



Hasonló dokumentumok
PowerShell v2.0 alapok. Nagy Miklós

Powershell 1. gyakorlat

PowerShell v2.0 alapok. Nagy Miklós

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

Ismerkedés a powershellel 2. rész

PowerShell. Operációs rendszerek Windisch Gergely

Windows hálózati adminisztráció

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

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

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

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

A héj vezérlő szerkezetei I.

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

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

Linux fájlrendszerek.

A táblázatkezelő felépítése

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

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

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

Adatok szűrése, rendezése

Szkriptnyelvek. 1. UNIX shell

Fordítóprogramok Készítette: Nagy Krisztián

INFORMATIKAI ALAPISMERETEK

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

C# gyorstalpaló. Készítette: Major Péter

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

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

A szerzõrõl... xi Bevezetés... xiii

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

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

Operációs Rendszerek II. labor alkalom

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

AWP TELEPÍTÉSE- WINDOWS7 64 OPERÁCIÓS RENDSZEREN

Adatbázis-kezelés. 7. SQL Táblák összekapcsolása

Számítástechnika-kidolgozott szóbeli tételek (11-15.)

Digitális technika (VIMIAA01) Laboratórium 1

PCLinuxOS Magazine május

Microsoft PowerShell 1.0

3. Gyakorlat Ismerkedés a Java nyelvvel

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

Operációs rendszerek gyak.

Powershell gyakorlathoz.. Bővebben

Párhuzamos programozás

Minta programterv a 1. házi feladathoz

DLookup függvény 1. (5)

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

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

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

Johanyák Zsolt Csaba, Göcs László. Windows hálózati adminisztráció a gyakorlatban

Szkriptelési feladat megoldása

Operációs Rendszerek. Windows Parancssor

Adattípusok. Max. 2GByte

Mikrokontrollerek. Tihanyi Attila május 8

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Adattípusok. Max. 2GByte

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

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László

1. Alapok. #!/bin/bash

Adatbázis-kezelés. Harmadik előadás

Programozás I gyakorlat

Konfigurációkezelés (2B)

Linux, Bash és PowerShell alapok

Johanyák Zsolt Csaba, Göcs László. Windows hálózati adminisztráció a gyakorlatban

BEVEZETÉS Az objektum fogalma

Powershell 2. gyakorlat

2 Excel 2013 zsebkönyv

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

A sed folyamszerkesztő

Imperatív programozás

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar I n f o r m a t i k a

Operációs rendszerek 1.

A C programozási nyelv VI. Parancssori argumentumok File kezelés

1. Metrótörténet. A feladat folytatása a következő oldalon található. Informatika emelt szint. m2_blaha.jpg, m3_nagyvaradter.jpg és m4_furopajzs.jpg.

Adatbázisok* tulajdonságai

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

BASH SCRIPT SHELL JEGYZETEK

Prop-Tech. Vázmérő. Telepítési és eltávolítási útmutató

VISUAL BASIC ALAPISMERETEK

Bash Shell Programozás. 1. oldal

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

ADATBÁZISKEZELÉS ADATBÁZIS

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

1. fejezet Microsoft Excel 2010 Tartománynevek... 3

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

OPERÁCIÓS RENDSZEREK II GYAKORLAT

TANMENET. Tantárgy: Informatika Osztály: 9B. Heti óraszám: 2

Operációs rendszerek MINB240/PMTRTNB230H

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

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

FENNTARTHATÓ FEJLŐDÉS

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

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

Elemi adatszerkezetek

Imperatív programozás

2. MODUL OPERÁCIÓS RENDSZEREK ÉS FÁJL-KEZELÉS

Átírás:

PowerShell alapok 2011. Október 4.

Parancsértelmezők A DOS-os command.com és utódja a cmd.exe nem segítik a hatékony script írást (ellenpélda Unix/Linux világ, bash) A Microsoft a 2000-es évek elején egy újfajta megközelítésű parancssori menedzsment megoldás kidolgozásába kezdett, ez lett a Powerhell (kódnevén Monad ) A PowerShell első publikus bemutatója 2003 szeptemberében volt A megoldás képességeiben sok szempontból túlmutat a méltán nagy hírű Linux shell-ek szolgáltatásain Erős.Net kapcsolat Irodalom (ingyenesen elérhető): Soós Tibor és Szerényi László, Microsoft PowerShell 1.0 rendszergazdáknak - elmélet és gyakorlat http://www.microsoft.com/hun/dl.aspx?id=a5b21b7c-3d64-4144-a44c-27a495dbab2c

PowerShell parancsok Indítása powershell parancs kiadásával A PowerShell környezetében többféle parancs stílust is használhatunk: Hagyományos DOS belső parancsok (pl. DIR) Unix-os parancsok (pl. ls) PowerShell saját parancsai, az ún. Cmdlet-ek (pl. Get-ChildItem) Szabványos Windows futtatható programok A DOS és a Unix parancsok valójában alias-ok a PowerShell saját parancsaira (Cmdlet)

Cmdlet A PowerShell saját parancsai Leírásuk minden esetben ige-főnév formájú Pl. Get-ChildItem vagy Get-Process Get-Help get-*, Get-Help Get-Process -example A parancs paramétereinek neve kötött A parancs kimenete nem sima szöveg, hanem objektum! A parancsok összefűzhetők (kompozit parancsok)

Parancsok összefűzése Ránézésre hasonló, mint a hagyományos parancssor: dir find ARIS Szöveg helyett azonban objektumok közlekednek > Get-ChildItem where-object { $_.Length -ge 1000 } Ami akár tovább is láncolható > Get-ChildItem where-object { $_.Length -ge 1000 } Sort-Object -property Length Melyek az egyes objektumok tulajdonságai? > Get-ChildItem get-member

Legfontosabb parancselemek és argumentumok Add Get New Remove Set Ige ChildItem Item Process Object Help Főnév Verbose Debug WhatIf Confirm Property Argumentum

Néhány fontos parancs Kategória Mappák és fájlok Parancsok Get-Childitem, Get-Item, New-Item, Remove-Item, Move-Item, Copy-Item, Rename-Item, Invoke-Item Folyamatok Dátum és idő New-Item type file alma Get-Item alma Rename-Iten alma körte Get-Item körte Remove-Item körte Get-Process, Stop-Process Get-Date, pl: Get-Childitem where-object { $_.LastAccessTime lt (Get-Date).AddDays(-10) } Eseménynapló Get-Eventlog, pl: Get-Eventlog System Newest 10 Egyéb Get-Member, Get-Help, Get-Alias

Get-alias két nézete Get-alias dir Get-alias definition Get-Childitem

Változók A változók neve $ jellel kezdődik A változókat nem kell deklarálni A változó értéke a név megadásával lekérhető >$most=get-date >$most A változók objektumokat tárolnak >$megint=get-date >$elteres=$megint-$most >$elteres

Szöveges változók (System.String) Karekterlánc típusú, értékadáskor a szöveget aposztrófok vagy idézőjelek között kell megadni >$t= alma Ez is objektum! A karakterlánc metódusai és tulajdonságai: >$t Get-Member (lista) >$t.length 4 >$t.toupper() ALMA >$t.replace( al, fel ) felma

Fontosabb karakterlánc műveletek Művelet Replace(<mit>,<mivel>) Contains(<szöveg>) StartsWith(<szöveg>) EndsWith(<szöveg>) Substring(<start>,<end>) Trim, TrimEnd, TrimStart Split Eredmény Szövegrész cseréje Szövegrész tartalmazásának vizsgálata Karakterlánc elejének vizsgálata Karakterlánc végének vizsgálata Szövegrész kivágása felesleges karakterek levágása Szöveg darabolása

Gyűjtemények Létrehozása Parancssorból: $b = alma, barack, citrom Parancs kimenete: $c = Get-Childitem $d = $t.split() A length értéke ilyenkor az elemek száma > $b.length > 3

Objektumok kezelése Bejárás: ForEach-Object > Get-ChildItem ForEach-Object { $sum+=$_.length } Szűrés: Where-Object > Get-ChildItem Where-Object { $_.Length ge 1000 } Rendezés: Sort-Object > Get-ChildItem Sort-Object -property Length Kiválasztás: Select-Object > Get-ChildItem Sort-Object -property Length Select- Object First 5 > "a","c","b","a","b","d","e" select-object -Unique Csoportosítás: Group-Object > Get-ChildItem Group-Object Extension

Eredményül kapott listák szűrése Könyvtárak listázása Get-Childitem Where-Object { $_.PsIsContainer } Leállított szolgáltatások listázása Get-Service Where-Object { $_.Status eq Stopped } Adott nevű folyamatok listázása Get-Process Where-Object { $_.Name like *svchost* }

Operátorok Operátor Magyarázat Operátor Magyarázat -eq Egyenlő -like Karakterlánc helyettesítő -lt Kisebb mint -notlike karakteres vizsgálata -gt Nagyobb mint -contains Egy gyűjtemény tagja-e az -le Kisebb v. egyenlő -notcontains adott objektum ge Nagyobb v. egyenlő -replace String.replace -not Logikai tagadás -and Logikai és -match Karakterlánc regexp alapú -or Logikai vagy -notmatch vizsgálata -band Bitenkénti és 3 lt 5 6 ge 7 kutya like ut kutya like *ut* -bor -xor Bitenkénti vagy Logikai kizáró vagy

Reguláris kifejezések karakter Illeszkedés karakterre \w Alfanum. Karakter. (pont) Egyetlen tetszőleges karakter \W Nem alnum [xyz] A zárójelben szereplőkből legalább egy \s Üres karakter [x-y] Tartomány \S Nem üres [^xyz] xyz kivételével bármelyik kar. \d Szám ^abc Sor eleje \D Nem szám abc$ Sor vége Kif{n} Kif. Ismétlődés n alkalommal x* X karakterből 0 n darab Kif{n,} Ismétlődés legalább n-szer x? X karakterből 0 1 darab Kif{n,m} n és m közötti számú ism. x+ X karakterből 1 n darab \kar Jelentés elnyomása (pl. \.)

Példák reguláris kifejezésekre "alma" match "ma" True "alma" match "^ma" False "alma" match "^al" True "alma" match "ma$" True "alma" match "^[a-d]" True "alma" match "^[e-g]" False "1992-08-20" -match "^\d{4}-\d{2}-\d{2}$" True "alma.txt" -match "^\w{3,5}\.txt$" True "korte.txt" -match "^\w{3,5}\.txt$" True "barack.txt" -match "^\w{3,5}\.txt$" False

Vezérlési szerkezetek If (<feltétel>) { <then ág> } else { <else ág> } >$a=12 >if ($a lt 20) { Kicsi } else { Nagy } Kicsi >$a=42 >if ($a lt 20) { Kicsi } else { Nagy } Nagy For(<kezdő>;<feltétel>;<lépés>) {<ciklusmag>} >for($b=1; $b lt 8; $b++ ) { $b } 1..7

Példák

Fájlokkal kapcsolatos példák Fájl tartalmának beolvasása $content = Get-Content c:\tmp\alma.txt Feltételnek megfelelő sorok kiíratása $content Where-Object { $_ -match "^.{3,5}$" } Vagy Select-String pattern "^.{3,5}$" c:\tmp\alma.txt Adott szöveget tartalmazó fájlok (rekurzív) Get-ChildItem -Recurse -Filter *.txt foreach-object { if (Select-string quiet "[0-9]{3}-[0-9]{4}" $_.FullName) { $_.FullName }}

Fájlok szűrése Méret szerint Get-ChildItem where-object { $_.Length -gt 100KB } Utolsó hozzáférés szerint Get-ChildItem where-object { $_.LastAccessTime -lt (Get-Date).AddDays(-10) } get-childitem where-object { $_.LastAccessTime lt (Get-Date).AddDays(-10) } ForEach-Object { remove-item -whatif -confirm $_.FullName } Csoportosítás kiterjesztés szerint Get-ChildItem Group-Object Extension

Fájlok helyfoglalása Írassuk ki a \Windows könyvtárban és alkönyvtáraiban található exe fájlok helyfoglalását Gbyte mértékegységben! > get-childitem -Recurse -filter *.exe \windows foreach-object { $size += $_.Length } > $size/1gb 5 legnagyobb fájl nevének kiírása a \Windows\Help könyvtár alatt (rekurzívan) > get-childitem -recurse \windows\help\ Sort-Object -Desc Length Select-Object -First 5

Fájlok Q&A Q: munkakönyvtár kiíratása A:(get-location).Path vagy $pwd Q: Könyvtár létrehozása A: create-item type directory alma vagy md alma Q: Fájl vagy könyvtár létezésének ellenőrzése A: test-path alma Q: Fájl vagy könyvtár törlése A: remove-item alma Q: Fájl vagy könyvtár átnevezése A: rename-item alma barack Q: Fájl vagy könyvtár másolása, mozgatása A: copy-item barack citrom A: move-item citrom eper Q: Hozzáférési jogok lekérése A: get-acl citrom

Két lista összehasonlítása Működés $a = alma, barack, dió $b = alma, barack, citrom, dió Compare-Object $a $b

Feladat Adottak könyvtárak, bennük JPEG fájlok, mindegyik egyedi névvel (pl. DSC_1234.JPEG) Adott egy másik könyvtárstruktúra, többékevésbé azonos fájlokkal, de másfajta szervezésben Feladat: a két struktúrában található fájlok közötti különbségek megtalálása (csak név számít)

Feladat Card1 Card2 Sarród Illmitz DSC_5678.JPEG DSC_6001.JPEG DSC_5678.JPEG DSC_5679.JPEG DSC_5679.JPEG DSC_6002.JPEG DSC_6003.JPEG DSC_6002.JPEG DSC_6003.JPEG

Megoldás Fájllista kinyerése get-childitem -recurse where-object { -not $_.PSIsContainer } sort-object -property name ForEach-Object { $_.Name } Összehasonlítás $a = get-childitem recurse c:\tmp\a $b = get-childitem recurse c:\tmp\b Compare-object $a $b