2012-11-15 28 views
6

鑑於基本的shell命令和腳本是UNIX類型環境中的開發人員所必需的 - 我說的是圓形,小商店,devops類型 - 是Powershell等效於Windows的嗎?Powershell是像Bash/Borne這樣的Windows開發人員爲Linux/UNIX開發人員提供的必要技能嗎?

我有一臺Windows 7機器在工作,但是我在UNIX環境中進行所有的開發工作,無論是在Mac上還是在Linux客戶機上使用VMWare。我不是一個系統管理員本身本身,但我在這裏和那裏填寫。 UNIX中的Grep,sed,awk,文件結構,網絡等都非常根深蒂固。我一直在使用這些工具多年。十年,甚至。

我一直在Windows機器上多玩弄一下。我的習慣是下降到命令行來完成任務,而不是通常與Windows相關的所有指向和點擊狂熱。但是對於Powershell,我完全迷失了。沒有什麼對我有意義。

值得學習嗎?這甚至是Windows民間工作的方式嗎?這一切是否會突然改變?成爲Powershell專家有什麼好處嗎?

回答

5

我相信是的。 Windows Server 2012的PowerShell是管理界面,並且幾乎所有這些都已移植回2008R2 & Win7(Windows Management Framework 3.0)。

有很多人拒絕向PowerShell過渡,但MS已經下定了這是前進的方向。最終用戶不會使用它,就像命令提示符一樣,但開發人員絕對需要了解它。

成爲PowerShell專家的優勢?與使用BAT/CMD腳本或Windows Script Host(VBScript/JScript)相比,您可以更輕鬆地自動化更多的Windows。遠程管理/訪問非常簡單&旨在讓您從一箇中央位置管理大量機器。

我發現自己在PowerShell中執行了很多任務,我曾跳到Visual Studio中,因爲它開始的速度更快,可以在命令行上快速創建原型,並且內置了大量的cmdlet它執行的任務通常需要編寫十幾行C#才能完成。

+1

我很想了解更多關於在PS中自動執行的任務。你有沒有關於它的博客? –

+1

目前,我不寫博客,但可能很快就會改變。最近,我編寫了腳本來操縱XML配置文件,爲他們所屬系統的升級做好準備,將大型Excel工作簿中的工作表解析爲單個XLSX文件(120個工作表中的1個工作簿中的120個單獨文件),上傳&從/(S)FTP(S)站點下載文件,並運行導出爲Excel格式的SSRS報告並上傳到FTPS站點。 – alroc

3

我相信它可以和Bash一樣強大,但是所有的命令名和語法都是不同的。 看看這篇文章,它將一些常見的UNIX命令與powershell等價物進行了比較。

http://windows-powershell-scripts.blogspot.com/2009/06/unix-equivalents-in-powershell.html

正如我已經開始使用PowerShell的多了,我發現,這是絕對值得學習。

+0

好文章。它鏈接到博客上其他其他類似有用的文章。不幸的是,作者在09年停止了。 –

+0

我不知道他們爲什麼不能僅僅從UNIX遷移一套久經考驗的真正的工具,比如grep,sed等等。相反,他們編寫自己的命令,基本上可以做同樣的事情,但以不同的名稱命名。也許我錯過了Powershell作爲環境的大局。也許如果我來自.NET世界,這將會更有意義。 –

+0

查看PowerShell中的別名 - 「Select-String」的別名是...'grep'。 「Get-ChildItem」別名爲「ls」,「Out-Printer」別名爲「lp」。他們不能移植UNIX工具並保留相同的名稱,因爲這會與基於.NET和PowerShell的設計理念相差甚遠。 – alroc

1

我的2美分:

我是系統管理員全職,一個developper自由和激情的攝影師。 對於我的系統管理員工作,我經常使用powershell。作爲一名攝影師有時候也是一名開發者(爲了管理我的照片!)。 在我的工作環境中,有6個開發人員(.net)全職工作,沒有人知道powershell(有些人永遠不知道是什麼)。 Powershell實際上是一個強大的shell,因爲bash是最大的區別,它基於.net框架,並且與對象而不僅僅是字符串一起工作。

+1

有趣的是,你提到的.NET開發人員甚至不知道Powershell是什麼。我從來沒有在大型企業或政府開發團隊工作過,但我曾與來自這個世界的人合作過。令人驚訝的是,他們的技能經常是多麼的狹隘,特別是.NET人。他們是殺手級C#程序員,但不知道其他方法如何。 –

+1

這種人在工作範圍內有足夠的知識去完成他們的工作。而且他們通常很好 - 但在一個非常狹窄的領域。一旦他們進入雜草,他們很快就會迷路。 – alroc

0

PowerShell無法與Unix控制檯環境進行比較,方法是非常不同的...

贏球,你可以使用本地VBS得到一些腳本,但非常有限的工具包括,也許你可以使用的GnuWin32嘗試在Windows ENV一些基本的Unix工具..

我的經驗用win7的,我可以告訴你,PowerShell只能用於Windows產品,比如交換,活動目錄和其他,但是非常令人沮喪,嘗試像unix shell一樣使用它,你不能......(你不能改變實時狀態標誌在Windows上的內核如linux)

我現在正在使用簡單的Windows shell與python來獲得一些高的開發人員功能,我想念從Unix系統....但還不夠..

+2

您可能有興趣瞭解第三方,例如VMWare和NetApp,也發佈了PowerShell的模塊和管理單元,以便與其產品進行交互。您可以通過PowerShell廣泛管理您的VMWare環境。這不是「僅適用於Windows產品」。您說它不像UNIX shell一樣工作正確,但它也不會假裝爲UNIX shell。 – alroc

+0

非常酷。我知道允許Visual Studio訪問VMWare的選項,但不知道PowerShell功能。我想檢查一下。 –

+0

@waingram,查看http://blogs.vmware.com/vipowershell/ – alroc