上篇文章我說道,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鍵。