探索PowerShell (三) PowerShell下使用Aliases
不知道各位有沒有接觸過linux,我才疏學(xué)淺,對(duì)alias的認(rèn)識(shí)是從linux上來的。Linux常用的Bash命令也是有上百個(gè),雖然一般情況下命令都非常簡(jiǎn)短,不過很多時(shí)候需要大量的卻是大量的參數(shù),這樣,對(duì)很多初學(xué)者來說,背命令變成為最頭疼的事情,也使得很多Linux初學(xué)者望而生畏。因此,在linux下,很常用的就是alias,也就是別名。當(dāng)然,PowerShell很好的借鑒了這一點(diǎn)。
這一節(jié)就來介紹PowerShell下的Aliases。
在PowerShell中,為了習(xí)慣于使用,可以使用別名代替命令。例如,Windows老手可以利用像dir、move、type、cls等,當(dāng)然,為了吸納更多使用者,PowerShell還提供了對(duì)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)置別名的存在,使得我們?cè)趕hell中工作時(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)簡(jiǎn)單的語法,沒有什么可多說的。
使用以上命令為你的cmdlet定義alias確實(shí)很容易,不過存在一個(gè)問題,就是這個(gè)alias只對(duì)當(dāng)前處于會(huì)話期的PowerShell有效,也就是說,當(dāng)你關(guān)閉并重新打開PowerShell時(shí),輸入這條alias,PowerShell會(huì)很無情的告訴你 “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,并且不想失去它,我們?cè)趺崔k?
• 有兩種選擇:
導(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)入就會(huì)產(chǎn)生這樣的杯具。
所以,我們的導(dǎo)出文件,只需要很簡(jiǎn)單的定義出自己常用的alias即可(那些系統(tǒng)自帶的都統(tǒng)統(tǒng)刪除就好啦),如:
方法二:使用PowerShell的配置文件
配置文件的位置存儲(chǔ)在$Profile變量中,其默認(rèn)值為:
'My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1″
使用如下命令查看$Profile值:
$Profile
如前所述,PowerShell配置文件是一個(gè)擴(kuò)展名為“.ps1”的文件。所有PowerShell腳本都使用這個(gè)擴(kuò)展名。在此,我將使用記事本對(duì)其進(jìn)行編輯。不過在此之前,還需要檢查的PowerShell的執(zhí)行策略設(shè)置。
PowerShell在第一次安裝時(shí)默認(rèn)的執(zhí)行策略是"Restricted",也就是“受限制的”,這意味著PowerShell將不能運(yùn)行任何腳本和配置文件。
• PowerShell的執(zhí)行策略分級(jí):
Restricted - 不能運(yùn)行任何腳本和配置文件
AllSigned - 所有腳本和配置文件必須擁有受信任的發(fā)布者的簽名
RemoteSigned - 所有腳本和配置文件從可以是互聯(lián)網(wǎng)上下載,但必須擁有受信任的發(fā)布者的簽名
Unrestricted - 所有腳本和配置文件都將運(yùn)行,從互聯(lián)網(wǎng)上下載的腳本在運(yùn)行前會(huì)有提示。
使用如下cmdlet查看當(dāng)前所處的策略級(jí)別:
Get-ExecutionPolicy <Enter>
修改策略級(jí)別為Unrestricted:
Set-ExecutionPolicy Unrestricted <enter>
好的,我們現(xiàn)在來對(duì)$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策略級(jí)別時(shí),需要使用管理員權(quán)限的,否則……
好了,這一節(jié)就到這里。說實(shí)話,那幾個(gè)策略級(jí)別的單詞真不好記,不過幸好不常用~~~
相關(guān)文章
原創(chuàng)powershell腳本小工具ctracert.ps1跟蹤路由(win8以上系統(tǒng))
這篇文章主要介紹了原創(chuàng)powershell腳本小工具ctracert.ps1跟蹤路由(win8以上系統(tǒng)),需要的朋友可以參考下2017-10-10powershell遠(yuǎn)程管理服務(wù)器磁盤空間的實(shí)現(xiàn)代碼
這篇文章主要介紹了powershell遠(yuǎn)程管理服務(wù)器磁盤空間的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-11-11PowerShell實(shí)現(xiàn)在多個(gè)文件中檢索關(guān)鍵字功能
這篇文章主要介紹了PowerShell實(shí)現(xiàn)在多個(gè)文件中檢索關(guān)鍵字功能,本文使用Select-String解決這了個(gè)需求,需要的朋友可以參考下2015-01-01PowerShell腳本開發(fā)之收發(fā)UDP消息包
上篇文章我們介紹了使用PowerShell收發(fā)TCP消息包,今天我們來介紹下使用Powershell收發(fā)UDP小細(xì)胞的方法2014-10-10PowerShell實(shí)現(xiàn)按條件終止管道的方法
這篇文章主要介紹了PowerShell實(shí)現(xiàn)按條件終止管道的方法,有時(shí)你可能想在管道運(yùn)行在某個(gè)特定的條件下,終止管道的運(yùn)行,本文就講解了這樣一種方法,需要的朋友可以參考下2015-06-06PowerShell Out-File向只讀文件寫入內(nèi)容的方法
這篇文章主要介紹了PowerShell Out-File向只讀文件寫入內(nèi)容的方法,只需要加一個(gè)-Force參數(shù)即可,需要的朋友可以參考下2014-08-08Powershell使用嵌套哈希表實(shí)例 嵌套哈希表的2種寫法例子
這篇文章主要介紹了Powershell使用嵌套哈希表實(shí)例,嵌套哈希表的2種寫法例子,需要的朋友可以參考下2014-07-07