微軟正式發(fā)布PowerShell的新版本PowerShell Core 6.0。該版本是開源的,支持多種平臺(Windows、macOS、Linux),是為異構(gòu)環(huán)境和混合云而構(gòu)建的。
雖然代號是6.0,但PowerShell Core 6.0是PowerShell的第一個Core版本,用開源.NET Core進(jìn)行了重寫,是Windows版本的后繼版本。而且,這個新版本得到了開源社區(qū)的支持,包括代碼、測試、文檔、問題、反饋和評論等方面的貢獻(xiàn)。即使是現(xiàn)在,人們?nèi)匀豢梢韵騊owerShell做貢獻(xiàn)。
在特性支持方面,微軟并沒讓Core版本支持Windows PowerShell的所有特性。PowerShell Core沒有提供PowerShell工作流、管理單元、WMIv1 Cmdlets等特性,也不能執(zhí)行所需狀態(tài)配置(DSC)資源。來自微軟的Joey Aiello在一篇博文中介紹了PowerShell Core的正式版本:
作為向.NET Core及其他操作系統(tǒng)遷移的一部分,我們不得不放棄Windows PowerShell正在使用的部分技術(shù)。而在其他一些地方,我們利用PowerShell重構(gòu)的機(jī)會停止支持一些用戶較少的技術(shù)。其中部分技術(shù)最終可能會回歸PowerShell Core,但也有許多不會。
現(xiàn)在有了兩種PowerShell,一種是廣為流行的基于.NET Framework的成熟版本(FullCLR),一種是基于.NET Core(CoreCLR)的。FullCLR及其依賴的.NET Framework只在Windows上可用,它已經(jīng)發(fā)布了多個版本(1.0、2.0、4.0、5.0和5.1),以名稱powershell.exe發(fā)布,是Windows客戶端及服務(wù)器的內(nèi)建組件。5.1版本是最后一個版本,后續(xù)不會再有新版本。除了已經(jīng)棄用的1.0和2.0版本之外,微軟計(jì)劃繼續(xù)為Windows PowerShell的大部分版本提供支持。不過,這項(xiàng)支持的前提是底層的Windows操作系統(tǒng)仍然是一個受支持的產(chǎn)品。
得益于.NET Core,CoreCLR版本(6.0)可以跨平臺。該版本在Windows上的名稱為pwsh.exe,在macOS和Linux上是pwsh。除了6.0外,5.0/5.1 Core版本也成為Microsoft Nano服務(wù)器的一部分??傊?,Core版本不同于Full版本。Paul Thurrott是一名技術(shù)新聞工作者,他在一篇博文中這樣描述PowerShell Core:
從功能的角度講,Windows PowerShell依然更強(qiáng)大,它可以充分利用.NET Framework和.NET Standard提供的更大的.NET功能集。PowerShell Core基于更新、更簡潔但功能較弱的.NET Core運(yùn)行時,使它的功能受限于.NET Core和.NET Standard當(dāng)前提供的功能。但PowerShell Core的優(yōu)勢和.NET Core一樣,可以跨平臺。因此,你編寫的任何PowerShell Core腳本都可以在Windows、 macOS及各種較新的Linux發(fā)行版(如Ubuntu、Debian、Red Hat企業(yè)版等)上運(yùn)行。
PowerShell Core設(shè)定了未來幾年的路線圖,它采用了微軟現(xiàn)代生命周期策略,旨在讓用戶的版本可以保持最新。6.x版本大約每6個月就會收到更新。
圖片來源:https://docs.microsoft.com/en-us/powershell/scripting/powershell-core-support?view=powershell-6
GitHub上提供了PowerShell Core源代碼。Windows版本和macOS&Linux版本的下載是單獨(dú)提供的。微軟文檔站點(diǎn)提供了Windows PowerShell和PowerShell Core的完整文檔。
查看英文原文:Microsoft Annouces General Availability of PowerShell Core 6.0