PowerShell vs Bash

a soapbox-on áll

ma találkoztam egy tweettel, és valódi elder millennial módon kiváltottam. A tweet ez volt (a név és a fogantyú elhomályosult):

Twitter idézet a bash" felsőbbrendűségéről "

az ok, amiért kiváltja számomra, nem csak azért, mert kutyák a PowerShell-en (egészséges karriert csináltam rajta, dicséret Snover), hanem összehasonlítja az almát és a narancsot is. Ha asztalos lennék, olyan lenne, mintha azt mondanám: “Nézd, a kalapács nagyszerű, de jobb lenne, ha csavarhúzó lenne”. Az adminisztrátoroknak gyakran azt mondják, hogy” válasszák a kerítés egyik oldalát”, ami csak akadályozza képességeiket. A tény az, hogy a PowerShell és a bash két különböző eszköz, különböző (bár hasonló) célokkal. Ebben a cikkben egy tényt, egy megfigyelést és egy véleményt fogok adni a PowerShell és a Bash közötti különbségről.

tény: Technikai különbségek a PowerShell és a Bash között

azok számára, akik teljesen nem ismerik a témát, a Bash a parancshéj és a szkriptnyelv a Linux rendszerek többségében, míg a PowerShell a parancshéj és a szkriptnyelv A Windows rendszerek többségében. Sokan ezt az érvet egy egyszerű “Linux vs.Windows” – ra fordítják, de ma magukról a szkriptnyelvekről fogunk beszélni.

tudom, hogy nagyon kritizálhatnak azért, amit mondani fogok, de az igazság az, hogy csak egy nagy különbség van a Bash és a PowerShell között. A bash a kimeneteket karakterláncként kezeli, míg a PowerShell a kimenetet objektumként kezeli. Filozófiailag, bash azt mondja, hogy mivel te, mint adminisztrátor, minden erős, te vagy a felelős a minősége, amit bemenet bash, és ez közvetlenül befolyásolja a minőségét kimenet bash. A PowerShell viszont meghatározza a kimenet egy részét az Ön számára. A kimenet objektumként történő strukturálásával különböző módszerekkel és tulajdonságokkal tárolhatja és manipulálhatja az objektumokat.

ennek egyik módja az, hogy a Bash-nál a parancsok és kimenetek az egész egy részét képviselik. Ha elég alkatrészt összeraksz, valami lenyűgözőt építhetsz. Ez olyan, mintha a szkript egyik darabját használnánk motor építéséhez, a másik néhány tengelyt, a harmadik pedig a kerekeket. A nap végén lesz egy autó, ha össze van kapcsolva. A PowerShell viszont az egész autóval reagál a parancsra, és visszafelé kell dolgoznia, hogy egyedi alkatrészt kapjon.

tudom, hogy sokkal több a különbség, de dióhéjban, hogy kell neked fel a sebességet.

megfigyelés: karrier pályák

van néhány dolog, amit észrevettem az évek során az iparban. Először is vannak olyanok, amelyeket szeretettel hívok “bal egérgombbal rendelkező mérnököknek”. Ezek azok az emberek, akik nem tudnak semmilyen szkriptnyelvet, nem is beszélve a PowerShell és a bash nagy kettőjéről. Gyakrabban, mint nem, ezek azok a típusok, amelyek átkerülnek a Promóciókra, figyelmen kívül hagyják a teljesítményalapú kompenzációt, és valószínűleg automatizálódnak vagy elengedik a következő néhány évben.

ezután vannak emberek, akiknek azt mondták, hogy tartsák a kerítés egyik oldalát. Igazából nagyon sajnálom ezeket az embereket, mert függetlenül attól, hogy a főnökük tudja-e vagy sem, megölik az alkalmazottjuk karrierlehetőségeit. Nem tudok egyetlen olyan üzletre gondolni, amelyben konzultáltam, dolgoztam, vagy ittam, amely homogén Linux vagy Windows üzlet volt. Egyszerűen túl sok olyan dolog van, amely több operációs rendszert igényel, ezért több szkriptnyelvet igényel. Szerencsére a PowerShell már elérhető Linuxon, és van egy Linux alrendszer a Windows számára, de ez nem közvetlen fordítás egyik irányba sem. Talán még azt is állíthatja, hogy a hangszerelés mindkét nyelv közvetlen igényét felváltja, de én sem találkoztam olyan üzlettel, amely 100% – ban hangszerelt környezet lenne. Az a tény, hogy a szkriptnyelvek körül lesznek, és egy forró percig szükségesek lesznek.

végül vannak olyan emberek, akik bármelyik típusú környezetben dolgozhatnak a PowerShell vagy a bash használatával. Ezek azok a fajta emberek, akiket a munkáltatók kívánatosnak találnak, mert bármilyen feladathoz hozzárendelhetők, és nem fognak kutyázni a csapat többi tagjával, mert Linux vagy Windows adminisztrátor. Ez hasonló az egész PC vs. Mac vita 15 évvel ezelőtt, ahol a Windows emberek azt hitték, hogy jobb okok miatt a, b, és c, míg ugyanabban az időben a Mac felhasználók azt hitték, hogy jobb okokból x, y, vagy z. szórakoztató tény: én kód PowerShell én MacBook Pro és imádom. Bash szkripteket írtam a Windows gépemre, hogy csatlakoztassam Jenkinshez nulla panasz nélkül.

vélemény: legyen kétnyelvű

nincs értelme csak egy “nyelvet” ismerni (vagyis ha ezen segédprogramok bármelyikét teljes értékű nyelvnek tekintjük). Valójában elegendő funkcionális ekvivalens van a PowerShell és a bash között, hogy a Windows még néhány bash paranccsal is szállít. Vissza a nap, akkor azt kell csapkod a PATH annak érdekében, hogy ls kell kezelni, mint dir A Windows parancssorban. Most lépjen a PowerShell-be, írja be a ls parancsot, és megkapja a várt választ. Ma már olyan sok cross-platform szkript és segédprogram van, hogy a különbség csökken, de a kódbázisok még mindig polarizáltak. Bizonyos üzletek csak a bash-t használják szkriptjeik létrehozásához, míg más üzletek csak a PowerShell-t használják. Nemrég sétáltam be egy boltba egyetlen PowerShell szkript nélkül-mindent bash-ban vagy akár perl-ben írtak. Beletelt egy kis időbe, de most már eléggé megosztottuk a szkriptjeinket A Windows és a Linux közel 50/50-es felosztásában. Annak érdekében, hogy belépjen egy környezetbe, és biztos legyen benne, hogy képes kezelni a feladatokat, ismeri mindkettőt.

remélem, tanultál valami hasznosat.

visszalép a soapbox-tól

nem tudsz betelni velem? Ügyeljen arra, hogy kövessen a Twitteren @_brycemcdonald.

tudta, hogy bérelhető vagyok? Vegye fel velem a részleteket a Twitteren keresztül, email, vagy a NorthCode Solutions webhelyén.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.