您好,登錄后才能下訂單哦!
談到“Shell”,很容易與腳本、編程語言等聯系起來,這也是很多ITPro不去鉆研PowerShell的原因。很多ITPro們認為用好PowerShell就要涉及到復雜的函數、變量、腳本,這或許是一種誤解。其實,PowerShell設計的初衷是作為一個高級管理工具,提供給系統管理員使用的。因此,運行命令以達到管理系統的目的,是我們學習PowerShell的開端。
一、什么是Cmdlet
Cmdlet 是一個原生的 PowerShell 命令行工具,雖然它表面上看與普通的 Dos 命令行工具很相似,卻有著本質的不同。Cmdlet 比純 Dos 命令行命令要復雜很多。在 PowerShell 的控制臺窗口中可以執行 Dos 命令行命令,反之則不行。
以上截圖是分別在 PowerShell 控制臺和 Dos 控制臺中執行“get-command” 命令的結果。大家可以看到,左邊窗口有結果反饋,而右邊的 Dos 窗口是找不到命令的信息。如果我們嘗試執行一個 Dos 命令的話,結果會如何呢?
二、Cmdlet的命名慣例
沒有規矩不成方圓,PowerShell 的 Cmdlet 也是如此。所有的 Cmdlet 命令都是由“動詞”+“-”+“名詞(單數形式)”組成的,例如:get(動詞)-(破折號)command(名詞)。可以通過運行 Get-Verb 來查看允許使用的動詞列表。
PowerShell 允許自定義名詞,因此并不存在 Get-Noun 的 Cmdlet 來顯示所有名詞。需要注意的是,并不是所有的動詞位置的詞都是動詞,例如:New、Where,這些詞是一些帶有動詞性質的名詞(如果你不理解,請補英文課程)。
這種命名規范最大的好處是:可以預先猜測命令,之后可以用幫助系統或者 Get-Command 命令驗證。
三、別名
雖然我們掌握了 PowerShell 的命名規范,但在使用中會發現有些命令實在是太長了,以至于用命令補齊的方式也還是嫌它長,這就是需要“別名”的原因。要想知道一個 Cmdlet 命令是否有別名,請執行如下命令:Get-Alias -Definition "Get-Service"
從上圖可以看到 Gsv 是 Get-Service 的別名。也可以用 New-Alias 命令創建自定義的別名,但如果你不導出的話,其生命周期僅限于本次會話。
四、一些術語
【Cmdlet】:原生的 PowerShell 命令行工具,僅存在于 PowerShell 和類似 C# 的.Net Framework 語言中。讀音:command-let。
【函數(Function)】:與 Cmdlet 類似,是以 PowerShell 自己的腳本語言編寫的。
【工作流(workflow)】:是嵌入 PowerShell 的工作流執行系統的一類特殊函數。
【應用程序】:是任意類型的外部可執行程序,包括類似 Ping、ipconfig 等命令行工具。
【命令】:是一個通用術語,代表任何或所有上面提到的術語。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。