在上一节,介绍了如何检索当前shell及Powershell中所有可用的命令,对于指定的命令会查看其语法信息,可以获取指定命令的帮助信息,包括获取在线帮助主题,详细内容时间戳这里


在本节中,主要介绍Powershell的别名,主要包含以下内容。

  1. 熟悉常见的别名。

  2. 标准别名的规范和创建新的别名。

  3. Powershell中兼容性别名。

  4. 总结



熟悉常见的别名

    别名,通俗点说就是另外一个名字,别名将所输入的命令和另外一个命令关联。举个例子,"咪咪"是"猫"的别名。通过使用别名,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
killpwd
type
del
lp
r
write
diff
ls
ren

如果经常使用这些命令之一,又想知道其在Powershell中的真实名称,可以通过 Get-Alias命令。

PS C:\Documents and Settings\Administrator> Get-Alias cls

CommandType     Name                                                Definition
-----------     ----                                                ----------
Alias           cls                                                 Clear-Host

关于别名应该注意,如果是处理其它来源的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)别名
dirlsGet-ChildItem
gci
cls
clear
Clear-Host(函数)
不可用
del,erase,rmdir
rm
Remove-Item
ri
copy
cpCopy-Item
ci
move
mvMove-Item
mi
renamemv
Rename-Item
rni
type
cat
Get-Content
gc
cd
cdSet-Location
sl
md
mkdir
New-Item
ni
不可用pushd
Push-Location
不可用
不可用popd
Pop-Location
不可用



总结

通过学习本节内容,应掌握以下内容

  1. Powershell中常见的别名及通过别名查看实际的Powershell命令。

  2. Powershell的别名命名规范以及会新建自己的别名(Powershell内置的别名不可更改)。

  3. 知道Powershell中兼容性别名