PowerShell vs Bash

staat op soapbox

vandaag kwam ik een tweet tegen, en in de echte oudere millennial mode werd ik getriggerd. De tweet was deze (naam en handvat versluierd):

Twitter Quote over de" superioriteit " van bash

de reden dat het triggering voor mij is niet alleen omdat het honden op PowerShell (Ik heb een gezonde carrière gemaakt op het, lof Snover), maar het is ook het vergelijken van appels en sinaasappels. Als ik een timmerman was, zou het zijn als zeggen “Kijk, een hamer is geweldig en alles, maar het zou beter zijn als het een schroevendraaier was”. Beheerders worden vaak verteld om” één kant van het hek te kiezen”, wat hun mogelijkheden alleen maar belemmert. Het feit is, PowerShell en bash zijn twee verschillende tools met verschillende (zij het, soortgelijke) doeleinden. In dit artikel ga ik je een feit, een observatie en een mening geven over het verschil tussen PowerShell en Bash.

feit: Technische verschillen tussen PowerShell en Bash

voor degenen die volledig onbekend zijn met het onderwerp, is bash de command shell en scripttaal voor de meerderheid van Linux-systemen terwijl PowerShell de command shell en scripttaal is voor de meerderheid van Windows-systemen. Veel mensen brengen dit argument neer op een eenvoudige “Linux VS.Windows”, maar vandaag gaan we het hebben over de scripttalen zelf.

ik weet dat ik zwaar bekritiseerd zou kunnen worden voor wat ik ga zeggen, maar de simpele waarheid is dat er maar één groot verschil is tussen bash en PowerShell. Bash behandelt uitgangen als strings, terwijl PowerShell output behandelt als objecten. Filosofisch gezien zegt bash dat omdat jij, als beheerder, allemaal machtig bent, je verantwoordelijk bent voor de kwaliteit van wat je invoert naar bash, en dat zal direct invloed hebben op de kwaliteit van de uitvoer van bash. PowerShell, aan de andere kant, bepaalt een beetje van de output voor u. Door de uitvoer als objecten te structureren, kunt u de objecten opslaan en manipuleren met verschillende methoden en eigenschappen.

een manier om hier over na te denken is dat met bash, je commando ‘ s en uitgangen één deel van een geheel vertegenwoordigen. Piece genoeg onderdelen aan elkaar en je kunt iets indrukwekkends bouwen. Dit is verwant aan het gebruik van een stuk van je script om een motor te bouwen, de andere enkele assen, en een derde je wielen. Aan het eind van de dag heb je een auto als het gecombineerd is. PowerShell, aan de andere kant, reageert op uw commando met de hele auto en je moet achteruit werken om een individuele component te krijgen.

ik weet dat er veel meer is aan de verschillen, maar in een notendop zou dat je op de hoogte moeten brengen.

observatie: loopbaantrajecten

er zijn een paar dingen die ik in de loop der jaren heb opgemerkt in de industrie. Ten eerste zijn er wat ik liefdevol noem “links-klik ingenieurs”. Dit zijn de mensen die geen scripttalen kennen, laat staan de grote twee van PowerShell en bash. Vaker wel dan niet, dit zijn het type dat krijgen doorgegeven voor promoties, over het hoofd gezien als het gaat om prestaties op basis van compensatie, en zal waarschijnlijk worden geautomatiseerd of laten gaan binnen de komende jaren.

vervolgens zijn er mensen die werd verteld om aan één kant van het hek te blijven. Ik voel me eigenlijk heel verdrietig voor deze mensen, want of hun baas het weet of niet, ze doden de carrièremogelijkheden van hun werknemer. Ik kan niet denken aan een enkele winkel die ik heb geraadpleegd voor, werkte voor, of had een drankje met dat was een homogene Linux-of Windows-Winkel. Er zijn gewoon te veel dingen die meerdere OS ‘ s en dus meerdere scripttalen vereisen. Gelukkig PowerShell is nu beschikbaar op Linux, en er is een Linux subsysteem voor Windows, maar het is niet een directe vertaling van beide richtingen. Je zou zelfs kunnen beweren dat orkestratie een directe behoefte aan beide talen vervangt, maar ik heb ook nog geen winkel ontmoet die een 100% georkestreerde omgeving is. Het feit is dat scripttalen in de buurt zullen zijn en nodig zullen zijn voor een hete minuut.

ten slotte zijn er mensen die in een bepaalde omgeving kunnen werken met PowerShell of bash. Dit zijn de soorten mensen werkgevers wenselijk vinden omdat ze kunnen worden toegewezen aan een taak en zal niet hond op de andere teamleden voor een Linux of Windows admin. Dit is vergelijkbaar met de hele PC vs. Mac debat 15 jaar geleden, waar Windows-mensen dachten dat ze beter waren om redenen a, b en c, terwijl op hetzelfde moment Mac-gebruikers dachten dat ze superieur waren om redenen x, y of z. leuk feit: ik code PowerShell op mijn MacBook Pro en ik hou ervan. Ik heb bash scripts op mijn Windows-machine geschreven om Jenkins zonder klachten aan te sluiten.

advies: Wees tweetalig

het heeft geen zin om slechts één “taal” te kennen (dat wil zeggen als je één van deze hulpprogramma ‘ s zelfs maar beschouwt als een volwaardige taal). In feite, er zijn genoeg functionele equivalenten tussen PowerShell en bash dat Windows is zelfs de scheepvaart met een aantal bash commando ‘ s. Vroeger zou je PATH moeten hacken om ls te krijgen om behandeld te worden als dir op een Windows opdrachtregel. Nu kun je naar PowerShell gaan, ls typen en het antwoord krijgen dat je verwacht. Vandaag, je hebt zo veel cross-platform scripts en hulpprogramma ‘ s dat het verschil kleiner wordt, maar de code bases zijn nog steeds gepolariseerd. Bepaalde winkels zullen alleen bash hebben gebruikt om hun scripts te maken, terwijl andere winkels alleen PowerShell hebben gebruikt. Ik heb onlangs liep in een winkel zonder een enkele PowerShell script – alles was geschreven in bash of zelfs perl. Het heeft enige tijd geduurd, maar nu hebben we een vrij gelijkmatige splitsing tussen onze scripts in een bijna 50/50 splitsing van Windows en Linux. Om in een omgeving te stappen en er zeker van te zijn dat je de mogelijkheid hebt om de taken aan te pakken, Weet beide.

ik hoop dat u iets nuttigs hebt geleerd.

treedt af van zeepbox

kan geen genoeg van me krijgen? Volg me op Twitter @_brycemcdonald.

wist u dat ik beschikbaar ben voor verhuur? Neem contact met mij op voor meer informatie via twitter, e-mail of op de website van NorthCode Solutions.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.