不知道各位有沒有接觸過linux,我才疏學(xué)淺,對alias的認(rèn)識是從linux上來的。Linux常用的Bash命令也是有上百個(gè),雖然一般情況下命令都非常簡短,不過很多時(shí)候需要大量的卻是大量的參數(shù),這樣,對很多初學(xué)者來說,背命令變成為最頭疼的事情,也使得很多Linux初學(xué)者望而生畏。因此,在linux下,很常用的就是alias,也就是別名。當(dāng)然,PowerShell很好的借鑒了這一點(diǎn)。
這一節(jié)就來介紹PowerShell下的Aliases。
在PowerShell中,為了習(xí)慣于使用,可以使用別名代替命令。例如,Windows老手可以利用像dir、move、type、cls等,當(dāng)然,為了吸納更多使用者,PowerShell還提供了對Linux的別名設(shè)置,如:ls、pwd、mv、man、cat等。
為PowerShell設(shè)置別名的目的,是為了向新用戶提供一個(gè)能夠快速交互的shell。這里的alias,指的是cmdlet的替代名稱。例如,"dir”替代的是"Get-ChildItem”。
在這一節(jié),將介紹兩種類型的alias:
內(nèi)置的別名
適用于Windows,Unix和預(yù)定義的PowerShell cmdlet的替代名稱。
使用以下命令來瀏覽PowerShell的alias列表:
get-alias enter>

細(xì)心的童鞋可以發(fā)現(xiàn),Get-ChileItem這個(gè)cmdlet擁有多個(gè)alias,如:dir、ls、gci。我們可以嘗試這些命令,結(jié)果都是一樣的,如下圖:

從本質(zhì)上講,我們只是運(yùn)行了四次"get-chileitem"。內(nèi)置別名的存在,使得我們在shell中工作時(shí)更加順手而高效。不過說實(shí)在的,作為用戶,我們沒有必要多多的關(guān)注一個(gè)cmdlet都有哪些alias,我們只要用好自己習(xí)慣的就行了。
用戶自定義的PowerShell的Alias
設(shè)置alias的命令
例:為名為'get-service”的cmdlet定義一個(gè)alias
Set-Alias gs Get-Service enter>
相當(dāng)簡單的語法,沒有什么可多說的。
使用以上命令為你的cmdlet定義alias確實(shí)很容易,不過存在一個(gè)問題,就是這個(gè)alias只對當(dāng)前處于會話期的PowerShell有效,也就是說,當(dāng)你關(guān)閉并重新打開PowerShell時(shí),輸入這條alias,PowerShell會很無情的告訴你 “The term ‘gs' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.”
那么,當(dāng)我們創(chuàng)建了一個(gè)Alias,并且不想失去它,我們怎么辦?
• 有兩種選擇:
導(dǎo)入和導(dǎo)出PowerShell的Aliases;
使用PowerShell配置文件來自定義Alias。
方法一:導(dǎo)入和導(dǎo)出PowerShell的Aliases
導(dǎo)出Aliases的一個(gè)好處就是,你可以將它帶到任何一個(gè)你想使用的地方。其命令如下導(dǎo)出文件名自定義>:
Export-Alias -Path a.txt enter>

我們可以用notepad.exe看看這個(gè)里面都是些什嗎東東~~~

好了,有人迫不及待的想試試導(dǎo)入了吧~~~
Import-Alias -Path a.txt enter>
額~杯具了!!!

看起來很慘的樣子……
其實(shí)如果一個(gè)cmdlet存在alias,那么再次導(dǎo)入就會產(chǎn)生這樣的杯具。
所以,我們的導(dǎo)出文件,只需要很簡單的定義出自己常用的alias即可(那些系統(tǒng)自帶的都統(tǒng)統(tǒng)刪除就好啦),如:

好了,就是這樣,嘿嘿嘿,是不是很邪惡~~~看看效果吧:

當(dāng)然,強(qiáng)大的PowerShell不會弱智到讓用戶每次啟動shell時(shí)都手動載入aliases一次的。在PowerShell的配置文件中,我們可以進(jìn)行相關(guān)設(shè)置。
方法二:使用PowerShell的配置文件
配置文件的位置存儲在$Profile變量中,其默認(rèn)值為:
'My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1″
使用如下命令查看$Profile值:
$Profile

如前所述,PowerShell配置文件是一個(gè)擴(kuò)展名為“.ps1”的文件。所有PowerShell腳本都使用這個(gè)擴(kuò)展名。在此,我將使用記事本對其進(jìn)行編輯。不過在此之前,還需要檢查的PowerShell的執(zhí)行策略設(shè)置。
PowerShell在第一次安裝時(shí)默認(rèn)的執(zhí)行策略是"Restricted",也就是“受限制的”,這意味著PowerShell將不能運(yùn)行任何腳本和配置文件。
• PowerShell的執(zhí)行策略分級:
Restricted - 不能運(yùn)行任何腳本和配置文件
AllSigned - 所有腳本和配置文件必須擁有受信任的發(fā)布者的簽名
RemoteSigned - 所有腳本和配置文件從可以是互聯(lián)網(wǎng)上下載,但必須擁有受信任的發(fā)布者的簽名
Unrestricted - 所有腳本和配置文件都將運(yùn)行,從互聯(lián)網(wǎng)上下載的腳本在運(yùn)行前會有提示。
使用如下cmdlet查看當(dāng)前所處的策略級別:
Get-ExecutionPolicy Enter>
修改策略級別為Unrestricted:
Set-ExecutionPolicy Unrestricted enter>
好的,我們現(xiàn)在來對$Profile進(jìn)行配置。
• 第1步 驗(yàn)證$Profile是否存在
test-path $Profile Enter>
false ===> 配置文件不存在(繼續(xù)步驟2)。
true ===> 不多說了,直接跳過步驟2和3吧。除非你想創(chuàng)建一個(gè)新的配置文件,不過這將刪除當(dāng)前的配置文件。
• 第2步 創(chuàng)建一個(gè)新的配置文件
New-Item -Path $Profile -ItemType file -Force enter>

第3步 再次驗(yàn)證是否成功創(chuàng)建新的配置文件
重復(fù)步驟1吧。結(jié)果應(yīng)該為"true”。

好了,在記事本中打開配置文件:
notepad $Profile enter>
OK!我們現(xiàn)在擁有了一個(gè)空白的配置文件,其實(shí)可以稱之為一個(gè)空白腳本。
其文件名為:
“Microsoft.PowerShell_profile.ps1″
現(xiàn)在開始配置吧:

好了,現(xiàn)在可以關(guān)閉notepad和Powershell了。重新打開PowerShell試試看。

完美!
另外需要說明幾點(diǎn),更改PowerShell策略級別時(shí),需要使用管理員權(quán)限的,否則……
好了,這一節(jié)就到這里。說實(shí)話,那幾個(gè)策略級別的單詞真不好記,不過幸好不常用~~~
您可能感興趣的文章:- PowerShell中使用Get-Alias命令獲取cmdlet別名例子
- Yii2中設(shè)置與獲取別名的函數(shù)(setAlias和getAlias)用法分析
- PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯(cuò)誤的解決方法
- Nginx中的root&alias文件路徑及索引目錄配置詳解
- 修改Android簽名證書keystore的密碼、別名alias以及別名密碼
- nginx,apache的alias和認(rèn)證功能
- JavaWeb開發(fā)中alias攔截器的使用方法