1. 程式人生 > >PowerShell 學習筆記——運行命令

PowerShell 學習筆記——運行命令

powershell

談到“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 等命令行工具。

【命令】:是一個通用術語,代表任何或所有上面提到的術語。



本文出自 “中國極道” 博客,轉載請與作者聯系!

PowerShell 學習筆記——運行命令