Niektóre rzeczy, które lubię w Bash i chciałbym wiedzieć, jak to zrobić w PowerShell:
W Bash mam skonfigurowane przewijanie historii, aby przewijało tylko polecenia rozpoczynające się od tego samego prefiksu, co bieżąca linia. Jeśli chcę zobaczyć moje ostatnie zatwierdzenie (np. Aby ponownie użyć części komentarza), piszę „git”, a następnie ↑.
Powiązane jest oczywiście wyszukiwanie historii za pomocą Ctrl+R
Aby znaleźć inne rzeczy, piszę:
h | grep foo
W PowerShell używam:
h -c 1000 | where {$_.commandline.contains("foo")}
(oczywiście jestem nowicjuszem, musi być krótsza droga)
Rzeczy jak:
mv file.txt{,.bak}
lub
mv file.txt !#$.bak
Magiczna przestrzeń (która rozszerza się w
!$
linii)
Jakie są alternatywy w PowerShell?
źródło
1 - Za pomocą F8konsoli Windows można przełączać polecenia pasujące do początku bieżącego wiersza. To jest dopasowanie wielkości liter.
2 - Możesz użyć,
#
aby dopasować poprzednie polecenia. Używanie#<partial match><tab>
nie uwzględnia wielkości liter i dopasuje tekst w dowolnej pozycji poprzednich poleceń.Jeśli masz następującą historię poleceń:
Wpisanie
#pr
następnie tabwielokrotnie przejdzie przez 1, 2 i 3.Pisanie,
#st
a następnie tabkilkakrotnie, będzie przełączać się między 1 i 3.Użycie tylko # dopasuje całą historię.
#
może być również użyty po wprowadzeniu części polecenia. Jeśli twoja historia to:Możesz wpisać,
Get-Process #n<tab>| #s<tab>
aby uzyskaćGet-Process 'notepad'| select *
3 - Możesz użyć
Select-String
. Utwórz alias, aby był łatwy w użyciu (PowerShell v3 dodał aliassls
). Mógłbyś wtedy zrobić.4 - Możesz zrobić coś takiego:
5 -
$$
pasuje do ostatniego tokena ostatniego polecenia, ale nie znam sposobu na rozwinięcie go w linii.źródło
Powinieneś sprawdzić moduł PSReadline Oisina Grehana: http://nivot.org/blog/post/2012/09/12/Emicing-Bash-GNU-Readline-with-PowerShell-30
Kod jest dostępny tutaj: https://bitbucket.org/oising/psreadline/overview
To sprawia, że PowerShell nadaje się do użytku jako CLI, z punktu widzenia doświadczonych administratorów * nix, którzy czasami pracują z Windows, dodając podstawowe wiązania EMACS do edycji linii, wyszukiwania historii itp.
źródło