Aliases
LidoNesta aula, você aprenderá sobre aliases no PowerShell, incluindo os nativos, como criar os seus próprios e as boas práticas para usá-los em scripts. Ao final, terá exercícios práticos para fixar o conteúdo.
Aliases no PowerShell são apelidos curtos para comandos ou funções, criados para agilizar a digitação no terminal. Eles são essenciais para quem deseja produtividade no dia a dia, mas exigem cuidado quando usados em scripts, pois podem tornar o código obscuro e difícil de manter. Nesta aula, vamos explorar os aliases nativos, como criar os seus próprios e quando é apropriado (ou não) utilizá-los.
O PowerShell oferece um conjunto robusto de aliases pré-definidos, que você pode listar, criar e remover dinamicamente. Entender como eles funcionam é fundamental para dominar o shell e escrever scripts mais claros e eficientes.
Aliases nativos
O PowerShell já vem com vários aliases prontos, que são abreviações para cmdlets comuns. Por exemplo, Get-ChildItem tem o alias dir (herdado do cmd) e ls (herdado do Unix). Esses aliases são definidos no perfil do PowerShell e podem ser vistos com o cmdlet Get-Alias.
Para listar todos os aliases disponíveis, execute:
Get-AliasVocê verá uma tabela com as colunas Alias e Command. Por exemplo:
Alias Command
---- -------
% ForEach-Object
* Where-Object
? Where-Object
cd Set-Location
cls Clear-Host
copy Copy-Item
dir Get-ChildItem
... Alguns aliases são bem conhecidos, como cd para Set-Location, cls para Clear-Host, copy para Copy-Item, e echo para Write-Output. Eles ajudam a facilitar a transição de usuários que vêm de outros shells, como cmd ou bash.
É possível também ver os aliases de um cmdlet específico usando Get-Alias -Definition:
Get-Alias -Definition Get-ChildItemIsso retorna todos os aliases que apontam para Get-ChildItem, como dir e ls.
Uma característica importante é que os aliases são resolvidos em tempo de execução, ou seja, se você alterar um alias, os scripts que o utilizam serão afetados na próxima execução. Por isso, é recomendável não depender de aliases em scripts.
Criando aliases
Para criar um novo alias, utiliza-se o cmdlet Set-Alias ou New-Alias. A sintaxe básica é:
Set-Alias -Name <nome> -Value <comando>Por exemplo, para criar um alias g para o comando Get-Process:
Set-Alias -Name g -Value Get-ProcessDepois de criado, você pode digitar g no terminal para executar Get-Process.
Outra forma é usar New-Alias, que é mais explícito:
New-Alias -Name grep -Value Select-StringIsso cria um alias grep que funciona como o comando Unix, mas chama Select-String.
É importante notar que Set-Alias pode substituir um alias existente, enquanto New-Alias falha se o alias já existir, a menos que você use o parâmetro -Force:
New-Alias -Name g -Value Get-Process -ForcePara remover um alias, use Remove-Item no caminho do alias:
Remove-Item alias:\gOu use o cmdlet Remove-Alias (disponível no PowerShell 6+):
Remove-Alias -Name gLembre-se de que os aliases criados em uma sessão são temporários, a menos que você os adicione ao seu perfil do PowerShell (arquivo $PROFILE). Para persistir, edite o perfil e adicione os comandos Set-Alias ou New-Alias.
Quando usar (e não usar em scripts)
Aliases são ótimos para uso interativo no terminal, pois economizam tempo e são fáceis de lembrar. No entanto, em scripts, o uso de aliases é considerado uma má prática por vários motivos:
- Clareza: Aliases como
%ou?podem não ser óbvios para quem lê o script, especialmente para iniciantes. - Portabilidade: Se o script for executado em outra máquina, os aliases podem não existir, causando erros.
- Manutenção: Se o alias for redefinido, o comportamento do script pode mudar inesperadamente.
- Autodocumentação: O nome completo do cmdlet descreve melhor a ação, tornando o script autoexplicativo.
Portanto, em scripts, sempre use o nome completo do cmdlet ou função. Por exemplo, em vez de dir, use Get-ChildItem. Em vez de ? , use Where-Object.
Exceções: Em scripts muito curtos ou protótipos, pode-se usar aliases para agilizar, mas é recomendável substituí-los antes de compartilhar ou colocar em produção.
Uma boa prática é definir aliases personalizados no perfil para uso interativo, mas nunca depender deles em scripts.
Exemplos
Vamos ver alguns exemplos práticos de criação e uso de aliases.
Exemplo 1: Criar um alias para abrir o Bloco de Notas
Set-Alias -Name notepad -Value notepad.exeAgora, digitar notepad abrirá o Bloco de Notas (na verdade, notepad já é um alias nativo, mas serve como ilustração).
Exemplo 2: Alias para listar arquivos com detalhes
Set-Alias -Name ll -Value Get-ChildItemIsso permite usar ll para listar arquivos, similar ao comando ls -l do Unix.
Exemplo 3: Alias para um comando com parâmetros fixos
Aliases não permitem incluir parâmetros diretamente. Para isso, é necessário criar uma função. Mas você pode usar um alias para uma função que você mesmo criou:
function Get-FilesByExtension($ext) {
Get-ChildItem -Filter "*.$ext"
}
Set-Alias -Name gfe -Value Get-FilesByExtensionAgora, gfe txt listará todos os arquivos .txt no diretório atual.
Exemplo 4: Listar aliases de um cmdlet
Get-Alias -Definition Get-ProcessIsso mostra todos os aliases que apontam para Get-Process.
Exemplo 5: Importar aliases de um módulo
Alguns módulos exportam aliases. Para ver os aliases de um módulo específico, use:
Import-Module PSScheduledJob
Get-Alias -Module PSScheduledJobIsso lista os aliases fornecidos pelo módulo.
Boas práticas e observações finais
Ao trabalhar com aliases, siga estas recomendações:
- Use aliases apenas para uso interativo, não em scripts.
- Prefira nomes de aliases curtos e intuitivos.
- Documente seus aliases personalizados no perfil, para que outros usuários entendam.
- Verifique se um alias já existe antes de criar um novo, para evitar conflitos.
- Lembre-se de que aliases são específicos da sessão, a menos que você os persista no perfil.
Dominar aliases melhora sua eficiência no PowerShell, mas manter seus scripts legíveis é mais importante. Equilibre o uso dos dois para se tornar um profissional completo.
Referências
- Documentação oficial: about_Aliases
- Set-Alias (Microsoft.PowerShell.Utility)
- New-Alias (Microsoft.PowerShell.Utility)
- Get-Alias (Microsoft.PowerShell.Utility)
- about_Profiles
- Criando aliases personalizados (Microsoft Learn)
Exercícios
- Liste todos os aliases que apontam para o cmdlet
Get-Contente explique o que eles fazem. - Crie um alias chamado
fque execute o comandoGet-ChildItem -Recursee teste-o no diretório atual. - Explique por que usar aliases em scripts é considerado má prática e dê um exemplo de script que seria problemático.
- Remova o alias criado no exercício 2 usando
Remove-Iteme depois verifique se ele foi removido. - Crie uma função
Get-LargeFilesque liste arquivos maiores que 100MB e, em seguida, crie um aliaslgpara essa função. Teste o alias.
Get-Content, use: Get-Alias -Definition Get-Content Os aliases típicos são cat e type. Eles são usados para exibir o conteúdo de um arquivo no console.Set-Alias -Name f -Value Get-ChildItem -Force Para testar, digite f no diretório atual. Para incluir o parâmetro -Recurse, é necessário criar uma função, pois aliases não aceitam parâmetros fixos. Exemplo: function f { Get-ChildItem -Recurse }dir *.txt Se dir for redefinido, o script quebra. Em vez disso, use Get-ChildItem -Filter *.txt.f, use: Remove-Item alias:\f Verifique com Get-Alias -Name f; se retornar erro, o alias foi removido.function Get-LargeFiles { Get-ChildItem -File | Where-Object { $_.Length -gt 100MB } } Depois, crie o alias: Set-Alias -Name lg -Value Get-LargeFiles Teste digitando lg no diretório.