Powershell學習筆記一:簡介

簡介
  Windows Powershell是專爲系統管理員設計的全新Windows命令行界面外殼程序。可以說,它就是模仿了Linux的shell而設計的。與linux中的bash什麼的一樣,它也包含了交互式的提示和腳本環境。兩者可以組合也可以獨立使用。
 
  在Powershell中出現了一個叫cmdlet的概念,它是嵌入到外殼程序中的一個簡單的單一功能命令行工具。每個cmdlet都可以單獨使用,當然也可以用腳本讓它們組合在一起使用。Powershell包含了一百多個基本的核心cmdlet,用戶也可以自己編寫cmdlet。其實,cmdlet可以簡單的理解成內部命令。只是在Powershell中附帶了更多的內部命令。
  這些cmdlet(全稱是command-let)的格式都是一致的:“命令-對象”
 
  那麼,與我們熟悉的cmd.exe、SH、KSH、CSH和BASH等外殼有什麼不同呢?按官方文檔的說法有:
  --Powershell不處理文本,僅針對於.net平臺
  --附帶大量一致界面的內置命令
  --所有命令使用同一命令分析程序,命令學習輕鬆。(就是說都是MS做的,而不像linux那樣混亂,所以命令風格一致)
  另外,以前許多在cmd.exe下,或者bash下執行的命令,在powershell中也都可以執行(其實是轉換成powershell中的類似命令執行)。

Powershell cmdlet
  cmdlet(讀作"command-let")是powershell中,用於操作對象的單一功能命令。可以通過其名稱格式識別,-前後分隔的分別是動詞和名詞,例如:get-help、get-process、start-service
  傳統的外殼中,命令是從非常簡單(例如attrib.exe)到非常複雜(如netsh.exe)的可執行程序。而在powershell中,多數cmdlet非常簡單,它們設計爲與其它cmdlet組合使用。例如"get"用於檢索數據,"set"用於建立或修改數據,"format"僅設置數據格式,"out"僅將輸出定向到指定的目標。

腳本語言
  powershell中使用新的腳本語言而不是重用現有語言。因爲它是用於管理.net對象的,而且需要爲cmdlet提供一致的環境,它要支持複雜的任務,要與.net中使用的高級語言(比如C#)一致。

  在powershell中可以運行以前所有的命令行程序,也可以啓動圖形界面的windows程序。還可以捕獲程序生成的文本。

管道
  powershell中支持管道,與linux和cmd中的用法都一致。例如:ipconfig|findstr 字符
就可以把ipconfig輸出的文字中包含指定字符串的行提取出來。但是要注意findstr對大小寫是敏感的。
  大家可以試試:ipconfig|findstr Gateway

交換式環境與腳本
  與其它的shell程序相同,Powershell也支持完全交互式環境。在提示符下輸入命令會執行,或按需求發送到其它命令或重定向到文件中。
同時,Powershell中也完全支持腳本。在Powershell中,腳本文件 的擴展名爲.ps1,要運行腳本,在命令提示符下鍵入該腳本的名稱即可。(腳本的擴展名是可選的)
例如:
c:\test\testscript.ps1
 
c:\test\testscript
 
  即使腳本在當前目錄中,也必須指定腳本文件的完全限定路徑。若要指示當前目錄,請鍵入目錄名稱或使用點 (.) 表示當前目錄(這一點與linux相同,而不同於cmd)。例如:
.\testscript.ps1
 
  雖然腳本在一些企業中非常有用 -- 甚至是必需的,但是它們可以用於傳播惡意代碼。因此,Windows PowerShell 中的安全策略(稱爲執行策略)允許您確定腳本是否可以運行,以及它們是否必須包括數字簽名。
爲了消除明顯的風險,Windows PowerShell 中的執行策略都不允許通過雙擊腳本的圖標來運行它。有關詳細信息,請鍵入:
get-help about_signing
 
  Windows PowerShell 還包括一種非常豐富的腳本語言,使用該語言可以創建從最簡單到非常複雜的腳本。它支持用於循環、條件、流控制和變量賦值的語言結構。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章