Transcript of Und sogar modern…. Die ersten Computer hatten nicht mal Bildschirme, geschweige denn Grafik ENIAC,...
- Folie 1
- und sogar modern
- Folie 2
- Die ersten Computer hatten nicht mal Bildschirme, geschweige
denn Grafik ENIAC, Quelle: Wikipedia
- Folie 3
- Nach Druckern (eher gesteuerten Schreibmaschinen) kamen die
Bildschirme
- Folie 4
- Programme zeigten nur Text an Auch die Steuerung des
Betriebssystems geschah ausschlielich per Tastatur
- Folie 5
- Gewohnt! Die Maus gabs einfach noch nicht. Einfach! Es gab
nicht viel, was man tun konnte. Also auch wenig zu lernen.
Kompliziert! Mehr oder weniger systematisch je nach Hersteller und
System Die Kommandozeile konnte mehr und mehr
- Folie 6
- Anwendungsprogramme, auch Spiele:
- Folie 7
- Befehl Jeder ein bisschen anders Immer wieder einzutippen Keine
Hilfe o. . Batch Mehrere Befehle zu einer Stapelverarbeitungsdatei
zusammenfassen Erleichtert Routinearbeiten Skript Ablaufsteuerung:
Fallunterscheidungen, Wiederholungen Der nchste Befehl kann davon
abhngen, ob der vorherige funktionierte Pipe Dank Unix (1970):
Daten knnen durch mehrere Befehle durchgeleitet werden Jeder Befehl
macht nur ein bisschen was dran Baukastensystem
- Folie 8
- Scripts sind enorm wichtig fr die effiziente Verwaltung groer
Systeme Ntzlich und interessant auch fr kleine! Es gibt viele
verschiedene Shells Scriptsysteme je nach Betriebssysteme
BetriebssystemBeispiele Unix/Linuxsh, csh, ksh, MS-DOSCOMMAND.COM
WindowsCMD.EXE, PowerShell Andere BetriebssystemeViele!
- Folie 9
- Was? Die Microsoft Windows PowerShell 2.0 Warum? Sehr
systematisch - leicht zu erlernen Sehr modern und extrem mchtig
(Das wurde aber auch Zeit, Microsoft!) Und die anderen? Kann man
auch erlernen, wenn man mchte Erst recht, wenn man mal eine gesehen
hat
- Folie 10
- Text alleine oder Text in einem Fenster letztlich egal
- Folie 11
- Befehle nennen sich CommandLets Grundstzlich einheitlich:
Verb-Objekt Get- liest irgendetwas aus Da geht also nichts kaputt
Get-ChildItemGibt Verzeichnisinhalt aus Get-ContentGibt Dateiinhalt
aus Get-DateGibt Datum/Uhrzeit aus Get-HelpGibt Hilfe aus
Get-CommandGibt alle mglichen Befehle aus
- Folie 12
- Befehle knnen Parameter bekommen Damit kann man Details steuern
Get-ChildItem *.txt Damit klar ist, welche Dinge wir sehen wollen
Get-Content c:\boot.ini Damit klar ist, welche Datei wir ausgeben
wollen Befehle haben Namen Get-ChildItem -Path *.txt Get-Content
-Path *.txt Get-ChildItem -?
- Folie 13
- Hilfe gibts mit -? als Parameter Out-Printer -? Get-Help gibt
Hilfe Get-Help Format-Table -Full Get-Member liefert Informationen
ber Objekte Die wichtigsten Befehle sind also Get-Help Get-Command
Get-Member (spter)
- Folie 14
- Fr Faule und Gewohnheitstiere: Aliase! Get-ChildItem = gci =
dir = ls Get-Help = help Format-Table = ft Format-List = fl
Out-Host -Paging = more Woher wei man das? Get-Alias
Tab-Completion! get-c tab Get-ChildItem format tab tab tab
Format-List
- Folie 15
- Ausprobieren! Get-ChildItem | Format-Table Name, Length
Get-ChildItem | Format-List Name, Length Get-ChildItem |
Format-Wide Get-ChildItem | Out-GridView Blo warum funktioniert
das?
- Folie 16
- Alle anderen Shells liefern einfach Text
- Folie 17
- PowerShell liefert nicht Text, sondern Objekte Datenpakete mit
Aufklebern: Eigenschaften Ich (eine Datei) habe eine Eigenschaft
Name, und das ist ein Stck Text. Ich (eine Datei) habe eine
Eigenschaft Length, und das ist eine Zahl. Eingebauter
Werkzeugkasten: Methoden Ich (ein Computer) kenne eine Methode
Reboot() Fr Fortgeschrittene Get-Member listet die Eigenschaften
und Methoden der Objekte auf
- Folie 18
- Der senkrechte Strich zwischen zwei Befehlen leitet die Objekte
von einem zum nchsten weiter Befehl1 | Befehl2 | Befehl3 | Befehl4
Jeder Befehl kann irgendwas mit den Daten machen, und irgendwas
ausgeben Das kommt dann als Eingabe in den nchsten Befehl Wenn beim
letzten Befehl etwas herauskommt, wird es angezeigt Das knnen viele
andere Shells auch aber eben nur mit Text, nicht mit sich selbst
beschreibenden Objekten
- Folie 19
- Sort-Object sortiert Objekte nach ihren Eigenschaften
Select-Object lsst nur bestimmte Eigenschaften durch (kann auch
neue Eigenschaften bilden) Where-Object filtert Objekte nach
irgendwelchen Bedingungen lsst nur die erwnschten durch
ForEach-Object tut irgendetwas mit jedem ankommenden Objekt
- Folie 20
- Alles in eine Zeile tippen: Get-ChildItem -Filter *.txt
-Recurse | Where-Object {$_.Length -lt 10000} | Sort-Object Length
| Select-Object FullName | Out-Host -Paging Get-ChildItem -Filter
*.txt Recurse | Where-Object {$_.Length -lt 10000} | Sort-Object
Length | Select-Object FullName | Out-GridView
- Folie 21
- Zwei Mal dasselbe verarbeiten geht das nicht einfacher? Doch
(natrlich): Mit Variablen Variablen speichern Objekte Fangen mit $
an und haben einen Namen $daten = Get-ChildItem -Filter *.txt
Recurse | Where-Object {$_.Length -lt 10000} | Sort-Object Length
$daten | Export-Csv Datei.csv $daten | Out-GridView $daten |
Select-Object -First 5 | Out-Printer $_ in Where-Object,
ForEach-Object usw. enthlt das jeweilige Objekt in der Pipe
- Folie 22
- Es werden oft dieselben Dinge bentigt Dafr gibt es
Scriptdateien In der PowerShell enden die auf.ps1 Man muss sie aber
erst einschalten Aus Sicherheitsgrnden Set-ExecutionPolicy
RemoteSigned Bewirkt, dass Scripts vom lokalen Computer auch ohne
digitale Signatur ausgefhrt werden Das kann nur ein Administrator
einstellen
- Folie 23
- Von was fr Typen von Dateien habe ich wie viele? Get-ChildItem
-Recurse | Group-Object Extension | Sort-Object Count -Descending |
Select-Object Name, Count -First 10 Z. B. als
Get-ExtensionStatistic.ps1 speichern Aufrufbar nur mit
ausdrcklicher Verzeichnisangabe.\Get-ExtensionStatistics.ps1 (aus
dem aktuellen Verzeichnis)
- Folie 24
- Ntzliche CommandLets: Copy-Item kopiert Dateien (und anderes)
Set-Location wechselt das aktuelle Verzeichnis Remove-Item lscht
Vorsicht! Datenverlust! Erstmal mit -WhatIf oder -Confirm
ausprobieren! Group-Object stellt Objekte in Gruppen mit gleichen
Eigenschaftswerten zusammen Measure-Object berechnet: zhlt,
summiert Get-ChildItem | Measure-Object Length -Sum
- Folie 25
- PowerShell ist.NET auf der Kommandozeile.NET kann dynamisch
DLLs nachladen Also kann PowerShell das auch: Siehe auch:
http://www.ct-systeme.com/sf/tools/publisher/Seiten/Kommandozeile.aspx
Siehe auch:
http://www.ct-systeme.com/sf/tools/publisher/Seiten/Kommandozeile.aspx
- Folie 26
- Wir haben gerade mal ganz leicht an der Oberflche gekratzt!
PowerShell kann noch viel mehr: Computer im Netzwerk finden, auf
denen nur noch wenig Platz frei ist Zugriffsrechte einstellen
Datenbanken abfragen E-Mail senden Dateien von einem Webserver
herunterladen Typ der Grafikkarte feststellen Software installieren
Und Knigreich Euphoria spielen
http://www.ct-systeme.com/Lists/Downloads/DispForm.aspx?ID=46