Einige der Dinge, die ich in Bash mag und gerne wissen würde, wie man in PowerShell vorgeht:
In Bash habe ich das Scrollen des Verlaufs so eingerichtet, dass nur Befehle gescrollt werden, die mit demselben Präfix wie die aktuelle Zeile beginnen. Wenn ich mein letztes Commit sehen möchte (z. B. um einen Teil des Kommentars wiederzuverwenden), schreibe ich 'git' und dann ↑.
Verwandt ist natürlich die Verlaufssuche mit Ctrl+R
Um andere Dinge zu finden, schreibe ich:
h | grep foo
In PowerShell verwende ich:
h -c 1000 | where {$_.commandline.contains("foo")}
(Offensichtlich bin ich ein Neuling, es muss einen kürzeren Weg geben)
Dinge wie:
mv file.txt{,.bak}
oder
mv file.txt !#$.bak
Magischer Raum (der sich
!$
inline erweitert )
Was sind die Alternativen in PowerShell?
quelle
1 - Sie können F8über die Windows-Konsole Befehle durchlaufen, die dem Anfang der aktuellen Zeile entsprechen. Dies ist eine Übereinstimmung zwischen Groß- und Kleinschreibung.
2 - Sie können verwenden
#
, um vorherige Befehle abzugleichen. Die Verwendung unterscheidet nicht zwischen#<partial match><tab>
Groß- und Kleinschreibung und stimmt mit dem Text an einer beliebigen Position in den vorherigen Befehlen überein.Wenn Sie den folgenden Befehlsverlauf haben:
Die Eingabe
#pr
dann tabwird wiederholt Zyklus durch 1, 2 und 3.Wenn Sie
#st
dann tabwiederholt tippen, werden 1 und 3 durchlaufen.Wenn Sie nur # verwenden, wird der gesamte Verlauf abgeglichen.
#
kann auch nach Eingabe eines Teils eines Befehls verwendet werden. Wenn Ihre Geschichte ist:Sie können eingeben
Get-Process #n<tab>| #s<tab>
, um zu erhaltenGet-Process 'notepad'| select *
3 - Sie können verwenden
Select-String
. Erstellen Sie einen Alias, um die Verwendung zu vereinfachen (PowerShell v3 hat den Alias hinzugefügtsls
). Sie könnten dann tun.4 - Sie können so etwas tun:
5 -
$$
Entspricht dem letzten Token des letzten Befehls, aber ich kenne keine Möglichkeit, ihn inline zu erweitern.quelle
Sie sollten sich das PSReadline-Modul von Oisin Grehan ansehen: http://nivot.org/blog/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30
Der Code ist hier verfügbar: https://bitbucket.org/oising/psreadline/overview
Dies macht PowerShell aus Sicht erfahrener * nix-Administratoren, die gelegentlich mit Windows arbeiten, tatsächlich als CLI verwendbar, indem grundlegende EMACS-Bindungen für die Zeilenbearbeitung, Verlaufssuche usw. hinzugefügt werden.
quelle