Некоторые вещи, которые мне нравятся в Bash и которые я хотел бы знать, как делать в PowerShell:
В Bash у меня настроена прокрутка истории, чтобы она прокручивала только те команды, которые начинаются с того же префикса, что и текущая строка. Если я хочу посмотреть мой последний коммит (например, повторно использовать часть комментария), я пишу «git», а затем ↑.
Связан, конечно, поиск истории с Ctrl+R
Чтобы найти другие вещи, я пишу:
h | grep foo
В PowerShell я использую:
h -c 1000 | where {$_.commandline.contains("foo")}
(очевидно, я новичок, должен быть более короткий путь)
Вещи как:
mv file.txt{,.bak}
или
mv file.txt !#$.bak
Магическое пространство (расширяется в
!$
линию)
Каковы альтернативы в PowerShell?
1 - Вы можете использовать F8из консоли Windows для переключения между командами, которые соответствуют началу текущей строки. Это совпадение с учетом регистра.
2 - Вы можете использовать,
#
чтобы соответствовать предыдущим командам. Использование#<partial match><tab>
не учитывает регистр и будет сопоставлять текст в любой позиции в предыдущих командах.Если у вас есть следующая история команд:
Typing
#pr
затем tabмногократно будет цикл через 1, 2 и 3.Typing
#st
затем tabповторно будет цикл через 1 и 3.Использование только # будет соответствовать всей истории.
#
также может использоваться после ввода части команды. Если ваша история:Вы можете напечатать,
Get-Process #n<tab>| #s<tab>
чтобы получитьGet-Process 'notepad'| select *
3 - Вы можете использовать
Select-String
. Создайте для него псевдоним, чтобы его было легко использовать (PowerShell v3 добавил псевдонимsls
). Вы могли бы тогда сделать.4 - Вы можете сделать что-то вроде:
5 -
$$
соответствует последнему токену последней команды, но я не знаю, как расширить его в строке.источник
Вы должны проверить модуль PSReadline Ойсена Грехана: http://nivot.org/blog/post/2012/09/12/Emulation-Bash-GNU-Readline-with-PowerShell-30
Код доступен здесь: https://bitbucket.org/oising/psreadline/overview
Это делает PowerShell фактически пригодным для использования в качестве интерфейса командной строки, с точки зрения опытных администраторов * nix, которые иногда работают с Windows, путем добавления базовых привязок EMACS для редактирования строк, поиска в истории и т. Д.
источник