Некоторые вещи я люблю в Bash и хотел бы знать, как сделать в PowerShell:
В Bash у меня есть прокрутка истории, настроенная так, чтобы это только прокрутило команды, которые начинаются с того же префикса как текущая строка. Если я хочу видеть свою последнюю фиксацию (например, к части повторного использования комментария) я пишу 'мерзавцу' и затем ↑.
Связанный, конечно, поиск истории с Ctrl + R
Для нахождения других вещей я пишу:
h | grep foo
В PowerShell я использую:
h -c 1000 | where {$_.commandline.contains("foo")}
(очевидно, я - новичок, должен быть более короткий путь),
Вещи как:
mv file.txt{,.bak}
или
mv file.txt !#$.bak
Волшебное пространство (который расширяется !$
встроенный)
Каковы альтернативы в PowerShell?
Для (3), можно записать это как функцию в профиле (например. %USERPROFILE%\My Documents\WindowsPowerShell\profile.ps1
):
function hh ([string] $word) {
Get-History -c 1000 | where {$_.commandline.contains($word)}
}
Затем:
hh foo
Но Powershell лучше всего считается языком сценариев, чем как интерактивная оболочка, потому что базовой консолью является все еще cmd.exe со всеми своими ограничениями.
Таким образом, это - F7 для интерактивной истории, F3 для копирования предыдущей команды, F1 для копирования отдельного символа, F2 для копирования предыдущей команды до конкретного символа, и т.д., и т.д.