PowerShell for N00bs 3: What’s a.k.a. short for?


“Also known as.”  It’s an abbreviation, a TLA.  (What’s a TLA short for?  “Three Letter Acronymn.”  See: recursion, definition.)


In PowerShell for N00bs 2, we snuck something in the last example:



PSH> (gm -InputObject [string] | where-Object {$_.name -eq ‘replace’}).definition
System.String Replace(Char oldChar, Char newChar), System.String Replace(String oldValue, String newValue)


‘gm’ here stands for ‘Get-Member.’  It’s an alias.  Let’s create one – as an old school Unix user, my fingers are used to typing ‘less’ when I want to paginate output.


PSH> New-Alias less more


Now, to test it,


PSH> dir $env:temp | less


Works like a charm.  But, it doesn’t save us any keystrokes.  Now, let’s set aside our Unix experience and try to be lazy. 


PS> New-Alias ls more
New-Alias : Alias not allowed because an alias with the name ‘ls’ already exists.
At line:1 char:10
+ New-Alias  <<<< ls more


Ouch.  Well, what does it do?


PSH> Get-Alias ls


CommandType  Name  Definition
———–  —-  ———-
Alias        ls    Get-ChildItem


And what’s ‘Get-ChildItem?’  Let’s run it and see.


Oh, it’s ‘dir’.  Wait a second…


PSH> Get-Alias dir


CommandType  Name  Definition
———–  —-  ———-
Alias        dir   Get-ChildItem
 


‘dir’ is indeed an alias.  In fact, most of what we’re used to doing in cmd.exe (and /usr/bin/bash, for that matter) has been aliased. 


PSH> Get-Alias


That’s a lot of aliases.  Quick review: how many?  Get-Alias returns a list of items (an array in PSH-speak), and every array object has a property of the number of elements it contains.


PSH> (Get-Alias).count
101


That’s nice, but they’re all out of order.  Let’s organize them by alias name so we can better see what we have.


PSH> Get-Alias | Sort-Object -Property Name 


Next: we know ‘dir’ is an alias for Get-ChildItem.  Any others?  Yes, we can sort the alias list by Definition, but we’ll still have to scan for Get-ChildItem.


PSH> get-Alias | Where-Object {$_.Definition -match “Get-Childitem”}


CommandType  Name  Definition
———–  —-  ———-
Alias        gci   Get-ChildItem
Alias        ls    Get-ChildItem
Alias        dir   Get-ChildItem


‘gci’ makes sense in a TLA-sort of way.  In fact, if we sort the alias list by Definition, we’ll find most aliased commands have one alias that is some abbreviation or truncation of the command’s name. 


To review, we learned three things:



  • PowerShell comes with a bunch of aliases for common commands.

  • We can dump the list to see what it provides, and sort it by either alias or definition.

  • We can create more, so long as we don’t overwrite existing ones.  (More on that later.)

Comments (0)