程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 【探索PowerShell 】【三】PowerShell下使用Aliases

【探索PowerShell 】【三】PowerShell下使用Aliases

編輯:關於.NET

不知道各位有沒有接觸過linux,我才疏學淺,對alias的認識是從linux上來的。Linux常 用的Bash命令也是有上百個,雖然一般情況下命令都非常簡短,不過很多時候需要大量的卻 是大量的參數,這樣,對很多初學者來說,背命令變成為最頭疼的事情,也使得很多Linux初 學者望而生畏。因此,在linux下,很常用的就是alias,也就是別名。當然,PowerShell很 好的借鑒了這一點。

這一節就來介紹PowerShell下的Aliases。

在PowerShell中,為了習慣於使用,可以使用別名代替命令。例如,Windows老手可以利 用像dir、move、type、cls等,當然,為了吸納更多使用者,PowerShell還提供了對Linux的 別名設置,如:ls、pwd、mv、man、cat等。

為PowerShell設置別名的目的,是為了向新用戶提供一個能夠快速交互的shell。這裡的 alias,指的是cmdlet的替代名稱。例如,"dir”替代的是"Get-ChildItem”。

在這一節,將介紹兩種類型的alias:

內置的別名

適用於Windows,Unix和預定義的PowerShell cmdlet的替代名稱。

使用以下命令來浏覽PowerShell的alias列表:

get-alias <enter>

細心的童鞋可以發現,Get-ChileItem這個cmdlet擁有多個alias,如:dir、ls、gci。我 們可以嘗試這些命令,結果都是一樣的,如下圖:

從本質上 講,我們只是運行了四次"get-chileitem"。內置別名的存在,使得我們在shell中工作時更 加順手而高效。不過說實在的,作為用戶,我們沒有必要多多的關注一個cmdlet都有哪些 alias,我們只要用好自己習慣的就行了。

用戶自定義的PowerShell的Alias

設置alias的命令

例:為名為'get-service”的cmdlet定義一個 alias

Set-Alias gs Get-Service <enter>

相當簡單 的語法,沒有什麼可多說的。

使用以上命令為你的cmdlet定義alias確實很容易,不 過存在一個問題,就是這個alias只對當前處於會話期的PowerShell有效,也就是說,當你關 閉並重新打開PowerShell時,輸入這條alias,PowerShell會很無情的告訴你 “The term ‘gs’ is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.”

那麼,當我們創建了一 個Alias,並且不想失去它,我們怎麼辦?

• 有兩種選擇:

導入和導出 PowerShell的Aliases;

使用PowerShell配置文件來自定義Alias。

方法一: 導入和導出PowerShell的Aliases

導出Aliases的一個好處就是,你可以將它帶到任何 一個你想使用的地方。其命令如下<導出文件名自定義>:

Export-Alias  -Path a.txt <enter>

我們可以用notepad.exe看看這個裡面都是些什嗎東東~~~

好了,有人迫不及待的想試試導入了吧~~~

Import-Alias -Path a.txt <enter>

額~杯具了!!!

看起來很慘的樣子……

其實如果一個cmdlet存在alias,那麼再次導入就會產生這樣的杯具。

所以,我們的導出文件,只需要很簡單的定義出自己常用的alias即可(那些系統自帶的 都統統刪除就好啦),如:

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

當然,強大的PowerShell不會弱智到讓用戶每次啟動shell時都手動載入aliases一次的。 在PowerShell的配置文件中,我們可以進行相關設置。

方法二:使用PowerShell的配置文件

配置文件的位置存儲在$Profile變量中,其 默認值為:

'My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1″

使用如 下命令查看$Profile值:

$Profile 

如前所述,PowerShell配置文件是一個擴展名為“.ps1”的文件。所有 PowerShell腳本都使用這個擴展名。在此,我將使用記事本對其進行編輯。不過在此之前, 還需要檢查的PowerShell的執行策略設置。

PowerShell在第一次安裝時默認的執行策 略是"Restricted",也就是“受限制的”,這意味著PowerShell將不能運行任何 腳本和配置文件。

• PowerShell的執行策略分級:

Restricted - 不能 運行任何腳本和配置文件

AllSigned - 所有腳本和配置文件必須擁有受信任的發布者 的簽名

RemoteSigned - 所有腳本和配置文件從可以是互聯網上下載,但必須擁有受 信任的發布者的簽名

Unrestricted - 所有腳本和配置文件都將運行,從互聯網上下 載的腳本在運行前會有提示。

使用如下cmdlet查看當前所處的策略級別:

Get-ExecutionPolicy <Enter>

修改策略級別為 Unrestricted:

Set-ExecutionPolicy Unrestricted  <enter>

好的,我們現在來對$Profile進行配置。

• 第1步 驗證$Profile是否存在

test-path $Profile  <Enter>

false ===> 配置文件不存在(繼續步驟2)。

true ===> 不多說了,直接跳過步驟2和3吧。除非你想創建一個新的配置文件,不過這將刪除 當前的配置文件。

• 第2步 創建一個新的配置文件

New-Item  -Path $Profile -ItemType file -Force <enter>

第3步 再次驗證是否成功創建新的配置文件

重復步驟1吧。結果應該 為"true”。

好了,在 記事本中打開配置文件:

notepad $Profile  <enter>

OK!我們現在擁有了一個空白的配置文件,其實可以稱之為一 個空白腳本。

其文件名為:

“Microsoft.PowerShell_profile.ps1″

現在開始配置吧:

好了,現 在可以關閉notepad和Powershell了。重新打開PowerShell試試看。

完美!

另外需要說明幾點,更改PowerShell策略級別時,需要使用管理員權限的,否則 ……

好了,這一節就到這裡。說實話,那幾個策略級別的單詞真不好記,不過幸好不常用 ~~~

出處http://marui.blog.51cto.com/1034148/290067

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved