第 2 章
五分鐘認識核心:介面、指令、物件觀念
本章重點
- 認識 PowerShell 的介面與提示符號
- 了解 Cmdlet 的命名規則
- 理解 PowerShell 的物件觀念
- 學會用管線(pipeline)串接指令
- 知道如何取得說明文件
PowerShell 的介面
開啟 PowerShell 後,你會看到類似這樣的畫面:
Windows PowerShell
著作權 (C) Microsoft Corporation. 著作權所有,並保留一切權利。
PS C:\Users\你的帳號>
PS 是 PowerShell 的縮寫,後面接的是目前所在的路徑。
> 之後就是你輸入指令的地方。
C:\Users\你的帳號 就是你的「使用者資料夾」,
也叫家目錄(Home Directory)。PowerShell 開啟時預設在這裡。
Cmdlet:PowerShell 的指令格式
PowerShell 的指令叫做 Cmdlet(讀作 command-let), 命名規則是 動詞-名詞,例如:
Get-ChildItem:取得(Get)子項目(ChildItem),也就是列出檔案Set-Location:設定(Set)位置(Location),也就是切換資料夾Copy-Item:複製(Copy)項目(Item)Remove-Item:移除(Remove)項目(Item)Write-Output:輸出(Write)內容(Output)到畫面
這種命名方式很有規律,光看名稱就能猜出用途。 常用的動詞有:Get、Set、New、Remove、Copy、Move、Write、Read。
Get-ChildItem 可以寫成 gci 或 ls 或 dir。
但學習時建議先用完整名稱,比較不容易搞混。
物件觀念
這是 PowerShell 最重要的觀念,也是它和 cmd 最大的不同。
在 cmd 裡,dir 的輸出是一大串文字。
在 PowerShell 裡,Get-ChildItem 的輸出是一個個「物件」,
每個物件代表一個檔案或資料夾,帶有很多屬性。
# 列出目前資料夾,並只顯示名稱和大小
Get-ChildItem | Select-Object Name, Length
# 只列出 .txt 檔
Get-ChildItem -Filter "*.txt"
# 按大小由大到小排序
Get-ChildItem | Sort-Object Length -Descending
你可以對輸出的物件做篩選、排序、計算,這就是物件導向的好處。
管線(Pipeline)
管線符號 | 可以把前一個指令的輸出,送給下一個指令當作輸入。
這是 PowerShell 最強大的功能之一。
# 列出檔案,篩選大於 1MB 的,再按大小排序
Get-ChildItem | Where-Object { $_.Length -gt 1MB } | Sort-Object Length -Descending
# 取得執行中的服務,只顯示名稱
Get-Service | Select-Object Name, Status | Where-Object { $_.Status -eq "Running" }
取得說明文件
不知道某個指令怎麼用?PowerShell 有內建說明:
# 查詢 Get-ChildItem 的說明
Get-Help Get-ChildItem
# 查詢說明並顯示範例
Get-Help Get-ChildItem -Examples
# 在視窗中顯示完整說明
Get-Help Get-ChildItem -ShowWindow
Update-Help 即可(需要網路)。
get-childitem 和 Get-ChildItem 都可以,
建議習慣用大寫開頭,讀起來比較清楚。
Get-ChildItem:看看你家目錄有什麼Get-ChildItem | Sort-Object Length -Descending:按大小排序Get-Help Get-ChildItem -Examples:看看說明文件長什麼樣
小結
PowerShell 的指令格式是動詞-名詞,輸出的是物件而非純文字,
用管線 | 可以串接指令做更複雜的操作。
這三個核心觀念,是後面所有章節的基礎。
下一章,我們正式開始操作。