Wenn man wie ich eher von der Unix Seite (der guten Seite der Macht) kommt und auf seinem Windows PC zum vernünftigen Arbeiten mit der Kommandozeile noch cygwin installiert hat, dann vermisst man es schmerzlich auf Rechnern, die diese kleinen Linux Tools für Windows nicht besitzen.
Doch wenn man Glück hat, ist die Powershell installiert (die Anzahl von PC’s mit XP und nicht aktuellem Servicepack ist immer noch erschreckend hoch).
Nun stellt sich eine Frage. Auf der Unix Shell kennt man sich gut aus, aber wie heißt denn jetzt das entsprechende Powershell Kommando für den Unix Befehl, den man braucht. Die Antwort ist “rtfm” oder ein guter Artikel im Internet von jemanden, der die Doku gelesen hat. Für mich war dieser Artikel bei oreilly sehr hilfreich.
Was man dabei nämlich zuerst lernt ist, dass für die Powershell Kommandos eine Menge von Aliassen gibt, die teilweise gleichlautend mit den Unix Befehlen sind. Hier eine kleine Auswahl:
| Command |
Aliases |
| Copy-Item |
cpi, cp, copy |
| ForEach-Object |
foreach, % |
| Get-ChildItem |
dir, ls |
| Get-Command |
gcm |
| Get-Content |
cat, type |
| Get-Content |
gc, type, cat |
| Get-Help |
help |
| Get-Location |
gl, pwd |
| Move-Item |
mi, mv, move |
| Remove-Item |
ri, rd, del, rm, rmdir |
| Rename-Item |
rni, ren |
| Set-Location |
cd, chdir |
| Where-Object |
where |
Quelle: oreilly.de
Für meine Zwecke hat dies schon gereicht, denn ich wollte nur mit cat in eine Datei hineinschauen. Anders sieht es aus, wenn man einen “pager” wie more oder less benötigt. Für diese gibt es die PowerShell Community Extensions, die unter der Microsoft Public License (Ms-PL) stehen.
Dabei handelt es sich um zusätzliche cmdlets, providers, aliases, filters, functions and scripts für die Windows PowerShell. Die Doku dafür ist allerdings dürftig.
Fazit:
Wer wie ich eine Unix Shell vorzieht und auf den Zugriff von .NET Objekten über die Powershell verzichten kann, ist mit mit cygwin (sofern es installiert ist) besser bedient. Denn die Powershell Kommandos sind nur in Ansätzen (durch Aliasse) namensgleich mit Unix Befehlen. Die PowerShell Community Extensions verbessern diese Situation.
Ist cygwin nicht installiert, kommt man also um das Lesen der Powershell Doku nicht herum.
Wenn man wie ich eher von der Unix Seite (der guten Seite der Macht) kommt und auf seinem Windows PC zum vernünftigen Arbeiten mit der Kommandozeile noch cygwin installiert hat, dann vermisst man es schmerzlich auf Rechnern, die diese kleinen Linux Tools für Windows nicht besitzen.
Doch wenn man Glück hat, ist die Powershell installiert (die Anzahl von PC's mit XP und nicht aktuellem Servicepack ist immer noch erschreckend hoch).
Nun stellt sich eine Frage. Auf der Unix Shell kennt man sich gut aus, aber wie heißt denn jetzt das entsprechende Powershell Kommando für den Unix Befehl, den man braucht. Die Antwort ist "rtfm" oder ein guter Artikel im Internet von jemanden, der die Doku gelesen hat. Für mich war dieser Artikel bei oreilly sehr hilfreich.
Was man dabei nämlich zuerst lernt ist, dass für die Powershell Kommandos eine Menge von Aliassen gibt, die teilweise gleichlautend mit den Unix Befehlen sind. Hier eine kleine Auswahl:
table.powershell {border-collapse:collapse; border: 1px solid black}
table.powershell td,th {border: 1px solid #999999; padding: 2px}
Command
Aliases
Copy-Item
cpi, cp, copy
ForEach-Object
foreach, %
Get-ChildItem
dir, ls
Get-Command
gcm
Get-Content
cat, type
Get-Content
gc, type, cat
Get-Help
help
Get-Location
gl, pwd
Move-Item
mi, mv, move
Remove-Item
ri, rd, del, rm, rmdir
Rename-Item
rni, ren
Set-Location
cd, chdir
Where-Object
where
Quelle: oreilly.de
Für meine Zwecke hat dies schon gereicht, denn ich wollte nur mit cat in eine Datei hineinschauen. Anders sieht es aus, wenn man einen "pager" wie more oder less benötigt. Für diese gibt es die PowerShell Community Extensions, die unter der Microsoft Public License (Ms-PL) stehen.
Dabei handelt es sich um zusätzliche cmdlets, providers, aliases, filters, functions and scripts für die Windows PowerShell. Die Doku dafür ist allerdings dürftig.
Fazit:
Wer wie ich eine Unix Shell vorzieht und auf den Zugriff von .NET Objekten über die Powershell verzichten kann, ist mit mit cygwin (sofern es installiert ist) besser bedient. Denn die Powershell Kommandos sind nur in Ansätzen (durch Aliasse) namensgleich mit Unix Befehlen. Die PowerShell Community Extensions verbessern diese Situation.
Ist cygwin nicht installiert, kommt man also um das Lesen der Powershell Doku nicht herum.
geschrieben von gklinkmann
\\ tags: Linux, windows