Используя механизм псевдонимов, оболочка Windows PowerShell дает пользователям возможность ссылаться на команды по альтернативным именам. Механизм псевдонимов позволяет пользователям, имеющим опыт работы с другими оболочками, повторно использовать общие имена команд, с которыми они уже знакомы, для выполнения подобных операций в Windows PowerShell. Хотя мы не намереваемся подробно рассматривать псевдонимы Windows PowerShell, их можно использовать с самого начала работы с оболочкой Windows PowerShell.
Механизм псевдонимов связывает вводимое имя команды с другой командой. Например, в Windows PowerShell есть внутренняя функция Clear-Host, очищающая окно выводимых данных. Если в командной строке ввести команду cls или clear, Windows PowerShell интерпретирует это как псевдоним для функции Clear-Host и выполняет функцию Clear-Host.
Это помогает пользователям изучать Windows PowerShell. Во-первых, большая часть пользователей Cmd.exe и ОС UNIX умеет работать с большим количеством команд, которые они уже знают по имени, и хотя эквивалентные команды Windows PowerShell могут не давать идентичных результатов, по форме они настолько близки известным пользователям командам, что они могут использовать их в работе, не тратя усилий на запоминание имен команд Windows PowerShell. Во-вторых, основными источниками трудностей при изучении новой оболочки, если пользователь уже знаком с другой оболочкой, являются ошибки, вызываемые "памятью пальцев". Если в течение многих лет использовать средство Cmd.exe, то при необходимости очистить экран, заполненный выводом, рефлекторно возникает желание ввести команду cls и нажать клавишу ENTER. Без псевдонима функции Clear-Host в оболочке Windows PowerShell просто выводится сообщение об ошибке 'cls' is not recognized as a cmdlet, function, operable program, or script file., и становится совершенно непонятно, как очистить экран.
Далее приводится краткий список общих команд Cmd.exe и ОС UNIX, которые можно использовать в оболочке Windows PowerShell:
cat |
dir |
mount |
rm |
cd |
echo |
move |
rmdir |
chdir |
erase |
popd |
sleep |
clear |
h |
ps |
sort |
cls |
history |
pushd |
tee |
copy |
kill |
pwd |
type |
del |
lp |
r |
write |
diff |
ls |
ren |
|
При желании узнать действительное имя собственной команды Windows PowerShell используйте команду Get-Alias:
PS> Get-Alias cls CommandType Name Definition ----------- ---- ---------- Alias cls Clear-Host
Чтобы повысить читаемость примеров, в руководстве пользователя Windows PowerShell мы старались избегать применения псевдонимов. Однако иметь предварительное представление о псевдонимах очень полезно, если приходится работать с произвольными фрагментами кода Windows PowerShell из другого источника или если необходимо определить свои собственные псевдонимы. В оставшейся части этого раздела будут рассматриваться стандартные псевдонимы, а также способы определения собственных псевдонимов.
Интерпретация стандартных псевдонимов
В отличие от описанных выше псевдонимов, предназначенных для совместимости имен разных интерфейсов, псевдонимы, встроенные в оболочку Windows PowerShell, предназначены в основном для краткости. Такие более короткие имена могут быстрее вводиться, но их невозможно читать, если не знать, к чему они относятся.
В оболочке Windows PowerShell предпринята попытка найти компромисс между ясностью и краткостью. Такой компромисс обеспечивается при предоставлении набора стандартных псевдонимов, основанных на сокращенных именах для обычных глаголов и существительных. Это позволяет сформировать базовый набор псевдонимов для общих командлетов, которые могут быть читаемы, если известны сокращенные имена. Например, в стандартных псевдонимах глагол Get сокращается до g, глагол Set сокращается до s, существительное Item сокращается до i, существительное Location сокращается до l и существительное Command сокращается до cm.
Приведем краткий пример для иллюстрации того, как это работает. Стандартный псевдоним для Get-Item образуется из сочетания g для Get и i для Item: gi. Стандартный псевдоним для Set-Item образуется из сочетания s для Set и i для Item: si. Стандартный псевдоним для Get-Location образуется из сочетания g для Get и l для Location: gl. Стандартный псевдоним для Set-Location образуется из сочетания s для Set и l для Location: sl. Стандартный псевдоним для Get-Command образуется из сочетания g для Get и cm для Command: gcm. Командлета Set-Command не существует, но легко догадаться, что если бы он был, его стандартный псевдоним состоял бы из псевдонимов s для Set и cm для Command: scm. Кроме того, знакомые с механизмом псевдонимов Windows PowerShell и встретившие псевдоним scm, могут догадаться, что этот псевдоним относится к Set-Command.
Создание новых псевдонимов
Можно создать собственные псевдонимы при помощи командлета Set-Alias. Например, следующие инструкции создают стандартные псевдонимы командлетов, рассматривавшиеся в разделе "Интерпретация стандартных псевдонимов".
Set-Alias -Name gi -Value Get-Item Set-Alias -Name si -Value Set-Item Set-Alias -Name gl -Value Get-Location Set-Alias -Name sl -Value Set-Location Set-Alias -Name gcm -Value Get-Command
Внутренний механизм оболочки Windows PowerShell использует подобного рода команды во время установки, но эти псевдонимы нельзя изменить. При попытке действительного выполнения одной из этих команд будет сформировано сообщение об ошибке, поясняющее, что псевдоним не может быть изменен. Пример.
PS> Set-Alias -Name gi -Value Get-Item
Set-Alias : Alias is not writeable because alias gi is read-only or constant and cannot be written to.
At line:1 char:10
+ Set-Alias <<<< -Name gi -Value Get-Item