(5)Powershell别名(Alias)
在上一节,介绍了如何检索当前shell及Powershell中所有可用的命令,对于指定的命令会查看其语法信息,可以获取指定命令的帮助信息,包括获取在线帮助主题,详细内容时间戳这嘎达。
在本节中,主要介绍Powershell的别名,主要包含以下内容。
-
熟悉常见的别名。
-
标准别名的规范和创建新的别名。
-
Powershell中兼容性别名。
-
总结
熟悉常见的别名
别名,通俗点说就是另外一个名字,别名将所输入的命令和另外一个命令关联。举个例子,"咪咪"是"猫"的别名。通过使用别名,Powershell允许用户使用替代命令来引用命令。而且,别名使具有其它shell经验的用户在Powershell中重用这些命令来执行类似的操作。
例如:Powershell有一个名为Clear-Host的内部函数,用于清楚输出窗口。如果在命令提示符下输入 cls 或是 clear 命令,Powershell就会将此命令解释为 Clear-Host 函数的别名并允许 Clear-Host函数。
Powershell的别名功能非常有助于开发者了解Powershell,大多数的 cmd.exe 或是 UNIX 用户都有其按名称记忆的大量命令清单,他们在形式上的相似性足以使开发者无需先记住Powershell命令名称即可直接使用这些命令来完成工作。
下面是可以在Powershell中使用的通用的 Cmd.exe 和 UNIX 命令的简短列表。
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 |
如果经常使用这些命令之一,又想知道其在Powershell中的真实名称,可以通过 Get-Alias命令。
PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Alias cls
CommandType Name Version Source
----------- ---- ------- ------
Alias cls -> Clear-Host
PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Alias ls
CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem
PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-Alias rmdir
CommandType Name Version Source
----------- ---- ------- ------
Alias rmdir -> Remove-Item
关于别名应该注意,如果是处理其它来源的Powershell脚本或是代码段,或是希望定义自己的别名,知道有关的别名信息十分重要。同时也应该在意识到,每个开发者都可以定义自己的别名,所以在团队协作编写脚本是,应该尽量避免使用别名。
标准别名的规范
上面提到的别名是为实现与其他shell命令名称的兼容性而设计的,但是Powershell内置的别名与其不同,通常是为了简短易用而设计的,这些简短的命令便于输入,但是如果不了解其含义,则无法正确解读它们。
通过提供一组基于常用动词和名词的速记名称的标准别名,PowerShell在清晰性与简短性之间取得平衡。在一组常用 cmdlet的核心别名中,只需知道速记名称即可解读这些命令。例如,在标准别名中,动词 Get 缩写为 g,动词 Set 缩写为 s,名词 Item 缩写为 i,名词 Location 缩写为 l,而名词 Command 缩写为 cm。 请参考以下表格中的例子。
PS(Powershell)命令 | PS(Powershell)别名 |
---|---|
Get-Item | gi |
Set-Item | si |
Get-Location | gl |
Set-Location | sl |
Get-Command | gcm |
创建新的别名
Powershell命令 Set-Alias cmdlet 可以创建别名,如可以创建以下别名。
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
在内部,Powershell启动时会使用此类命令。需要注意的是Powershell内置别名(上面5个别名就是内置别名)是只读的或是常事,意味着Powershell内置的别名使不可修改的。
Powershell中兼容性别名
Powershell有几个转换别名,允许 UNIX 和 Cmd 开发者在Powershell 中使用熟悉的命令名称。下表列出了最常用的别名以及别名背后的Powershell命令和标准的Powershell别名(如果存在的话)。如前文所述,可以使用 Get-Alias cmdlet 查找别名对应的Powershell命令,如 Get-Alias cls 。
CMD命令 | UNIX命令 | PS(Powershell)命令 | PS(Powershell)别名 |
---|---|---|---|
dir | ls | Get-ChildItem | gci |
cls | clear | Clear-Host(函数) | 不可用 |
del,erase,rmdir | rm | Remove-Item | ri |
copy | cp | Copy-Item | ci |
move | mv | Move-Item | mi |
rename | mv | Rename-Item | rni |
type | cat | Get-Content | gc |
cd | cd | Set-Location | sl |
md | mkdir | New-Item | ni |
不可用 | pushd | Push-Location | 不可用 |
不可用 | popd | Pop-Location | 不可用 |
总结
通过学习本节内容,应掌握以下内容
-
Powershell中常见的别名及通过别名查看实际的Powershell命令。
-
Powershell的别名命名规范以及会新建自己的别名(Powershell内置的别名不可更改)。
-
知道Powershell中兼容性别名