PowerShell-Grundlagen

PowerShell wirkt einschüchternd — ist aber bemerkenswert logisch aufgebaut. Wenn du das Benennungs-Muster und drei Hilfs-Befehle kennst, kannst du dir den Rest selbst erschließen, statt alles auswendig zu lernen.

Das Grundgesetz: Jeder Befehl (ein „Cmdlet") heißt Verb-Nomen — eine Tätigkeit und ein Ding. Get-Process, Stop-Service, Get-ChildItem. Errätst du das Verb und das Nomen, errätst du den Befehl.

Probier es aus

Klick die Befehle — der Simulator zeigt, was PowerShell antworten würde:

Windows PowerShell
Klick einen Befehl — er wird hier ausgeführt.
PS C:\Users\du>

Die wichtigsten Verben

Mit einer Handvoll Verben deckst du fast alles ab: Get (holen/anzeigen), Set (ändern), New (erstellen), Remove (löschen), Start / Stop. Kombiniert mit einem Nomen ergibt das den Befehl.

Du kennst die Befehle schon — als Aliase

PowerShell akzeptiert viele vertraute Kurzformen aus CMD und Linux. Sie sind nur Spitznamen für die echten Cmdlets:

ls / dir / gciGet-ChildItem
cd / slSet-Location
pwd / glGet-Location
cat / gcGet-Content
cp / copyCopy-Item
mv / moveMove-Item
rm / delRemove-Item
cls / clearClear-Host
manGet-Help
psGet-Process

Die drei Befehle, mit denen du dich selbst rettest

PowerShellHilfe zur Selbsthilfe
Get-Help Get-ChildItem          # erklärt einen Befehl
Get-Help Get-ChildItem -Examples # zeigt Beispiele (am nützlichsten!)
Get-Command *service*            # findet Befehle nach Stichwort
Get-Member                       # zeigt, was ein Objekt kann (per Pipe)
Warum eigentlich?Warum das starre Verb-Nomen-Schema ein Geschenk ist
Weil es Befehle vorhersagbar macht. Du willst Prozesse beenden? Das Verb fürs Beenden ist Stop, das Nomen Process Stop-Process. Du musst den Befehl nicht kennen, du konstruierst ihn. Mit Tab-Vervollständigung tippst du Get-Ch + Tab und PowerShell vervollständigt zu Get-ChildItem. Das ist der ganze Trick: raten, Tab, fertig.
Häufiger DenkfehlerAnnehmen, dass ls sich wie unter Linux verhält
ls ist in PowerShell nur ein Alias für Get-ChildItem — und das nimmt andere Optionen als das Linux-ls. ls -la funktioniert nicht; richtig ist Get-ChildItem -Force. Die Aliase helfen beim Einstieg, aber die Parameter gehören dem Cmdlet. Im Zweifel Get-Help <befehl> -Examples.
Tiefer reinDer große Unterschied: Objekte statt Text
In CMD und Bash fließt zwischen Befehlen reiner Text, den man mühsam zerschneiden muss. PowerShell gibt Objekte weiter — strukturierte Dinge mit benannten Eigenschaften. Get-ChildItem liefert nicht Text, sondern Datei-Objekte mit .Name, .Length, .LastWriteTime. Deshalb kannst du sofort nach Größe sortieren oder filtern, ohne Spalten zu parsen. Genau das macht die Pipeline so mächtig — die übernächste Lektion.