首页 > 代码库 > 2 Powershell与Cmd以及Unix/Linux Shell

2 Powershell与Cmd以及Unix/Linux Shell

上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows   vista开始,计划要改变这种局面,于是就有

了Powershell的出现。

1、兼容shell命令

  为了兼容Unix/Linux Shell(主要是bash)的命令;Powershell中提供了一套机制来兼容cmd.exe和bash命令。这就是上篇文章中提到

的别名机制。下图是powershell中兼容的cmd命令和unix/linux shell的命令。

 

技术分享

2、标准命令的别名

  同样,powershell还提供一套机制来支持内置cmdlet的命令别名。

       我们知道cmdlets采用一致的用户接口模式: 动词-名词。 正如上面所说,上表例举的别名是为了和其他的console界面命令相兼容,而内置命令的

别名是为了简便而设置的。powershell提供一组基于常用命令的动词和名词的速记名称来为标准别名进行命名。

  例如:

            动词        命令的缩写/别名

    get            g

            set            s

    item          i

            location         l

           command                      cm

   这样:gi   则相当于   get-item 

                  si   则相当于   set-item

      因为这些别名实在powershell启动期间自动加载的;所以如果在命令行中再次设置命令行别名,则会提示错误,如下图所示:

技术分享

3、Tab自动补全功能

  powershell同时还继承了Tab键的自动补全功能;不过这个与cmd和bash的Tab功能不太一样,powershell中的tab扩展功能是通过函数来实现的。

其函数是: TabExpansion控制的,由于在powershell中可以修改内置的函数,因此需要注意。

  在键入命令时,如果要用Tab键来补充文件名或者路径;则在键入部分文件名或者路径后,按下Tab键,powershell中将自动将命令补充为第一个匹

配项,如果重复的按下Tab键,则将逐一显示所有可用的选项

  如果键入的是cmdlet;则与补充文件名和路径不同;如果要对cmdlet名称使用tab扩展,需要完整键入名称的第一部分及后面的连字符。可以填充

名称的更多部分已进行匹配。例如: 键入  get-c  然后键入Tab键,则自动补充的为get-childitem命令,如果继续按下tab键则补充出的命令为get-com

mand命令。

  在使用命令行自动补齐的过程有一点需要注意: 即无论何时Tan键都被解释为自动补充命令功能,因此在将命令复制到shell中时需要注意,复制的内容

后面不能包含Tab键

2 Powershell与Cmd以及Unix/Linux Shell