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:
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 / gci→ Get-ChildItem
cd / sl→ Set-Location
pwd / gl→ Get-Location
cat / gc→ Get-Content
cp / copy→ Copy-Item
mv / move→ Move-Item
rm / del→ Remove-Item
cls / clear→ Clear-Host
man→ Get-Help
ps→ Get-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 Denkfehler — Annehmen, 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 rein — Der 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.