Алиасы в PowerShell представляют собой удобные сокращения, которые позволяют выполнять команды, используя более короткие и лаконичные формы, не утрачивая при этом функциональности.
Недавно я наткнулся на блогера, который поделился несколькими интересными аспектами использования алиасов в PowerShell. Почему я раньше не обратил на них внимания? Давайте разберемся.
Понимание алиасов в PowerShell
Алиас (Alias) в переводе с английского означает «псевдоним» или «прозвище«. В PowerShell это позволяет нам использовать краткие обозначения для команд, делая код более лаконичным и читаемым.
Упрощение синтаксиса
Первый алиас: «?
» вместо «Where-Object
«
В скриптах часто приходится использовать Where-Object
для фильтрации результатов. Например:
Get-ChildItem -Path D:\ -Recurse | Where-Object { $_.PSIsContainer }
Однако, можно использовать алиас ?
вместо Where-Object
, что делает код более компактным.
Get-ChildItem -Path D:\ -Recurse | ? { $_.PSIsContainer }
Обе записи абсолютно идентичны по своей функциональности.
Второй алиас: «%» вместо «ForEach-Object»
Аналогично, для выполнения операций над каждым элементом коллекции можно использовать ForEach-Object
или его сокращенную форму foreach
. Однако, алиас %
делает код еще более лаконичным.
Get-ChildItem -Path D:\ -Recurse | ? { $_.PSIsContainer } | % {$_}
Удобство использования алисов в PowerShell
Упрощение логических операций с помощью алиасов
Вместо логического оператора -not
можно использовать оператор-алиас !
, что делает код более читаемым.
Get-ChildItem -Path D:\ -Recurse | Where-Object { -not $_.PSIsContainer }
Можно заменить на:
Get-ChildItem -Path D:\ -Recurse | Where-Object { ! $_.PSIsContainer }
Список полезных алиасов в PowerShell
Алиас | Команда |
---|---|
? | Where-Object |
% | ForEach-Object |
! | -not |
gci | Get-ChildItem , используется для получения списка файлов и каталогов в указанном пути. |
dir | Get-ChildItem , также используется для получения списка файлов и каталогов. |
ls | Get-ChildItem , сокращенная версия dir. |
cl | Clear-Host , очищает окно консоли. |
cat | Get-Content, используется для чтения содержимого файлов. |
man | Get-Help , используется для получения справки по командам. |
ni | New-Item , создает новый объект (файл, каталог и т. д.). |
mkdir | New-Item , создает новый каталог. |
cp | Copy-Item , копирует файлы и каталоги. |
mv | Move-Item , перемещает файлы и каталоги. |
del | Remove-Item , удаляет файлы и каталоги. |
ri | Remove-Item , также используется для удаления файлов и каталогов. |
cls | Clear-Host , альтернативный способ очистки окна консоли. |
echo | Write-Output , выводит данные на консоль. |
gc | Get-Content , сокращенная версия cat. |
sajb | Start-Job , запускает команду в фоновом режиме. |
sasb | Stop-Job , останавливает фоновую задачу. |
sc | Set-Content , используется для записи данных в файл. |
sls | Select-String , используется для поиска текстовых строк в файлах. |
gps | Get-Process , получает информацию о запущенных процессах. |
gcm | Get-Command , получает информацию о доступных командах. |
Чтобы просмотреть все алиасы в PowerShell, вы можете использовать командлет Get-Alias
. Просто введите эту команду в консоли PowerShell и выполните ее, чтобы получить список всех доступных алиасов.
Заключение
Работая с этими алиасами в PowerShell, я пришел к выводу, что при написании небольших скриптов или команд однострочные алиасы делают код более компактным и легким для восприятия. Однако, в случае более крупных скриптов предпочтительнее использовать полные названия команд, чтобы обеспечить максимальную читаемость кода, особенно для других разработчиков или администраторов, которые могут быть непривычны к таким сокращениям.