und sogar modern…. die ersten computer hatten nicht mal bildschirme, geschweige denn grafik eniac,...

26
Eine Welt jenseits von Fenstern und Mausklicks und sogar modern…

Upload: lanzo-ziems

Post on 05-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

  • 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