Aliases and Shortcuts

PowerShell comes with a number of canned aliases attempting to help the author make typing easier. For example, running Gwmi takes less time than typing Get-Wmiobject. This is a definite Unix mentality that values speedy typing over clarity or easy-to-read script. However, speedy typing does save time. Also, if you're just using the shell interactively, there's little reason to care what anyone else thinks about how clear or easy-to-read your script is! The Get-Alias cmdlet shows you all the predefined aliases, as well as any you've added yourself:

PS C:\> get-alias


ommandType     Name                             Definition
-----------     ----                             ----------
Alias           ac                               Add-Content
Alias           asnp                             Add-PSSnapin
Alias           clc                              Clear-Content
Alias           cli                              Clear-Item
Alias           clp                              Clear-ItemProperty
Alias           clv                              Clear-Variable
Alias           cpi                              Copy-Item
Alias           cpp                              Copy-ItemProperty
Alias           cvpa                             Convert-Path
Alias           diff                             Compare-Object
Alias           epal                             Export-Alias
Alias           epcsv                            Export-Csv
Alias           fc                               Format-Custom
Alias           fl                               Format-List
Alias           foreach                          ForEach-Object
Alias           %                                ForEach-Object
Alias           ft                               Format-Table
Alias           fw                               Format-Wide
Alias           gal                              Get-Alias
Alias           gc                               Get-Content
Alias           gci                              Get-ChildItem
Alias           gcm                              Get-Command
Alias           gdr                              Get-PSDrive
Alias           ghy                              Get-History
Alias           gi                               Get-Item
Alias           gl                               Get-Location
Alias           gm                               Get-Member
Alias           gp                               Get-ItemProperty
Alias           gps                              Get-Process
Alias           group                            Group-Object
Alias           gsv                              Get-Service
Alias           gsnp                             Get-PSSnapin
Alias           gu                               Get-Unique
Alias           gv                               Get-Variable
Alias           gwmi                             Get-WmiObject
Alias           iex                              Invoke-Expression
Alias           ihy                              Invoke-History
Alias           ii                               Invoke-Item
Alias           ipal                             Import-Alias
Alias           ipcsv                            Import-Csv
Alias           mi                               Move-Item
Alias           mp                               Move-ItemProperty
Alias           nal                              New-Alias
Alias           ndr                              New-PSDrive
Alias           ni                               New-Item
Alias           nv                               New-Variable
Alias           oh                               Out-Host
Alias           rdr                              Remove-PSDrive
Alias           ri                               Remove-Item
Alias           rni                              Rename-Item
Alias           rnp                              Rename-ItemProperty
Alias           rp                               Remove-ItemProperty
Alias           rsnp                             Remove-PSSnapin
Alias           rv                               Remove-Variable
Alias           rvpa                             Resolve-Path
Alias           sal                              Set-Alias
Alias           sasv                             Start-Service
Alias           sc                               Set-Content
Alias           select                           Select-Object
Alias           si                               Set-Item
Alias           sl                               Set-Location
Alias           sleep                            Start-Sleep
Alias           sort                             Sort-Object
Alias           sp                               Set-ItemProperty
Alias           spps                             Stop-Process
Alias           spsv                             Stop-Service
Alias           sv                               Set-Variable
Alias           tee                              Tee-Object
Alias           where                            Where-Object
Alias           ?                                Where-Object
Alias           write                            Write-Output
Alias           cat                              Get-Content
Alias           cd                               Set-Location
Alias           clear                            Clear-Host
Alias           cp                               Copy-Item
Alias           h                                Get-History
Alias           history                          Get-History
Alias           kill                             Stop-Process
Alias           lp                               Out-Printer
Alias           ls                               Get-ChildItem
Alias           mount                            New-PSDrive
Alias           mv                               Move-Item
Alias           popd                             Pop-Location
Alias           ps                               Get-Process
Alias           pushd                            Push-Location
Alias           pwd                              Get-Location
Alias           r                                Invoke-History
Alias           rm                               Remove-Item
Alias           rmdir                            Remove-Item
Alias           echo                             Write-Output
Alias           cls                              Clear-Host
Alias           chdir                            Set-Location
Alias           copy                             Copy-Item
Alias           del                              Remove-Item
Alias           dir                              Get-ChildItem
Alias           erase                            Remove-Item
Alias           move                             Move-Item
Alias           rd                               Remove-Item
Alias           ren                              Rename-Item

Alias           set                              Set-Variable
Alias           type                             Get-Content

Some of these aliases are really not obvious. For example, what would you make of an alias that looked like this?

$g = gwmi win32_service
% ($s in $g) { spsv $s }

Expanding all those aliases makes it easier to read:

$g = get-wmiobject win32_service
Foreach-object ($s in $g) { stop-service $s }