tgoop.com/interface31/4217
Last Update:
Алиасы в PowerShell
Многие, кто только начинает изучать PowerShell, особенно перейдя из мира Linux, жалуются на его многословность, что может быть неудобно, если вы используете PS непосредственно для администрирования системы.
Да, это так, но этому есть свои основания.
Классические UNIX-оболочки создавались в те далекие и светлые времена, когда компьютеры были большие, объемы памяти маленькие, а скорости передачи данных – медленные. Все это заставляло биться буквально за каждый байт.
Кроме того, в те времена не было ни интернета с гуглом, ни разных синтаксис-помощников, поэтому команды старались делать попроще, чтобы запоминать было легче, пренебрегая удобством чтения кода и наглядной очевидностью.
Да, bash прост, но прост для того, кто в нем постоянно работает. Если это не так, то возможны разные веселые, или не очень, затруднения.
Например, команда:
grep error error.log
Еще вполне читабельна и если мы помним, что такое grep, то без труда догадаемся, что мы ищем строку "error"
в файле error.log
. Но расширение не является обязательным атрибутом файла и поэтому мы вполне можем встретить:
grep error error
И если вы не помните синтаксис grep вам придется непросто. Особенно если нужно изменить часть команды.
Поэтому PowerShell, который разрабатывался значительно позже, обильно полили синтаксическим сахаром, справедливо предполагая, что люди тоже могут читать программы. И не только могут, но и будут.
Поэтому тот же аналог grep в PowerShell выглядит так:
Select-String -Pattern "error" -Path .\error
Да, многословно, но даже далекий от PowerShell человек поймет, что мы выбираем строки, содержащие текст “error”
из файла .\error
.
И если мы занимаемся написанием скриптов, то такая многословность нам только в плюс, так как сильно облегчает читаемость кода человеком.
А скрипты в голом блокноте давно уже никто не пишет, есть удобные среды разработки с автодополнением, подсветкой синтаксиса, синтаксис-помощниками и прочими плюшками.
Но как быть, если мы используем PowerShell для административных нужд, каждый раз набирать полное имя команды и ключи в консоли, даже с автодополнением, может быть утомительно.
А вот как раз для этого придумали алиасы. Полный список алиасов команд PowerShell можно посмотреть, выполнив команду:
Get-Alias
Если нас интересует конкретная команда, то следует набрать:
Get-Alias -Definition Select-String
А если, наоборот, расшифровать алиас, то следует выполнить:
Get-Alias sls
Также можно создавать свои алиасы, для этого используйте команду:
Set-Alias -Name grep -Value Select-String
Таким образом мы легко можем настроить среду согласно своих привычек или просто писать в привычном стиле:
sls error error
А для тех, кто свои лучше годы отдал работе с Windows, напоминаем, что PowerShell давно доступен и на платформе Linux.
BY Записки IT специалиста

Share with your friend now:
tgoop.com/interface31/4217