na linuxu pro jakoukoliv náročnější věc nasadím spíš PYTHON a ne tento obtížně čitelný paskvil ... v power shellu tvořím jen skripty u kterých předpokládám že je bude používat "standardní windows administrátor" to je takový ten blblounek co se bojí do systému instalovat cokoliv co v něm nebylo v základu nebo co nevyprodukoval microsoft. V takovém případě samozřejmě ocením že mohu skript psát pod linuxem a nemusím se s windows příliš trápit.
Nechápu proč odpověď "PowerCli" má 15 palců dolů.
V době, kdy vmware tlačí windows pryč (veškeré infra věci jedou na jeho photonos, nebo suse), je ideální chvíle vzít existující skripty, nahodit virtuální ubuntu (nebo debian/rhel/suse/... podle chuti, nativní balíčky powershellu existují) a spouštět ty skripty odtamtud.
Dám ti radu, nepřemýšlej nad "Like" vs "Unlike" zde.
1) podporovatelé mají větší váhu(násobek 5x), takže za 15 unlike = mohou pouze 3 uživatelé
2) dost často ti dají mínus nikoliv kvůli chytrosti, kvalitě, správnosti odpovědi(názoru) ale kvůli ideologii( např. svým vyjádřením útočíš na Linux a to se v česku neodpouští - však oni s tebou zatočí "po Bolševicku", protože buď jdeš s nimi(s tučňákem) nebo proti nim)
na co to potrebujem?
Na to aby som mohol rozumne spajat cesty k suborom, nativna praca z XML, JSON, a pre to, ze tam je skutocny foreach, typy, objekty, if (ziadne zrusnosti typu "if daco fi"), viem pouzivat .Net CRL...
Nechapem ten hejt, namiesto toho aby ste boli radi, ze na linuxovych strojoch mate o moznost viac.
IMHO, powershel na linuxe vo velkom vyuziva AppVeyor.
Powershell je na linuxu asi jediný shell, na které potřebuješ IDE :)
Nevidím výhodu v tom, aby každá aplikace měla "nativní práci s XML, JSON atd.", když na to mohu používat jeden nástroj v celém systému (python, perl). Stejně tak nepotřebuji v shellu skutečný foreach, typy, objekty atd., potřebuji rychle zapsat nějaký comand, to mi nejvíce na powershellu vadí, je strašně ukecaný.
Jo, hodí se to, když už mám udělanou remote ovládání na windows přes powershell, teď to stejné mohu mít na linuxu, ale přesvědčovat lidi, jak to je bezva, protože to má "skutečný foreach" je trochu úlet.
PS: být rád za možnost navíc je takový eufenismus, každému právě stačí přesně to co používá a jásat, že je k dispozici něco co nepoužívám se často nevidí. Tohle není pro linuxáky, tohle je pro windowsáky, pro který je pak snažší použití linuxu
Ja zas nechapu tenhle pristup. Kam se podelo stare dobre KISS?
"Rozumne" zpracovani cest ve FS umoznuje snad kazdy shell v Linuxu. Pomoci AWK se docela v pohode da zpracovat strukturovany text, JSON a XML FAKT nejsou nijak slozity formaty. A to nemluvim o faktu, ze na takovy veci - kdyz uz- tu je leta Perl, ci TCL (Na zpracovani textu je snad nejlepsi). V klidu se da vyuzit i LUA (coz taky delam).
Jestli jazyk pouziva podminky ve stylu if-then-fi, nebo if then end, nebo if( ){ } jsou fakt podradny detaily. Datove typy zrovna v shellu (diky rovine abstrakce techto interpreteru) jsou vicemene k nicemu, akorad zneprijemnuji zivot, S objekty se pracuje PODSTATE i v BASHI - lide si to jaksi obcas neuvedomuji - pouze na vyssi urovni.
Zacinam se pomalu desit toho co nam to do Linuxu leze! Desim se toho, ze za chvili jen kvuli debilnimu CSV formatu budete psat samostany jazyk, megalomanske objekty a nafouknute molochoidni knihovny. To nas cekaji fakt super casy!!! Chce se mi blejt velebnosti.
Nijak moc jsem nezaznamenal, ze by se PWSH pouzival v samotnych Widlych. Rozhodne zdaleka ne tolik jako se shelly vyuzivaji v Linuxu. Tak nam to musi narvat sem, aby se nereklo, ze to nikdo nechce. Tesime na tom fakt, ze jsou tu odnepameti zavedene nastroje, kterym sunty od M$ konkurovat nemohou....
> A to nemluvim o faktu, ze na takovy veci - kdyz uz- tu je leta Perl
To je fakt, Perl, to je docela dobra alternativa k PS. Ta citelnost skriptu je pri trose snahy skoro tak ujeta jako ta v PS :-)
Nehlede na to, nikdo te nenuti PS pouzivat, nekomu se to hodi, nekomu ne. Ze existuje perl a python - to znamena ze uz nemaji vznikat zadne dalsi jazyky a shelly? To je nesmysl na ntou.
> Nijak moc jsem nezaznamenal, ze by se PWSH pouzival v samotnych Widlych. Rozhodne zdaleka ne tolik jako se shelly vyuzivaji v Linuxu. Tak nam to musi narvat sem, aby se nereklo, ze to nikdo nechce. Tesime na tom fakt, ze jsou tu odnepameti zavedene nastroje, kterym sunty od M$ konkurovat nemohou....
Tak to jsi asi v zivote nevidel nekoho, kdo dela administraci vetsiho poctu Windows serveru nebo automatizuje veci ve VMWare (nejpouzivanejsi virtualizacni platforme :-D).
[kraxna]
Citelnost kodu, je vzdy o tom, kdo ho pise, ne o jazyku samotnem. O tom me - aniz by to tusil, presvedcil Pavel Tisnovsky, kdyz jsem porovnaval svoje skripty v TCL s temi, ktere sam psal jako examply ke svym clankum.Mel jsem za to, ze v TCL je kod vzdy prasecina. No... videl jsem ze ne. Konec koncu, najdete spoustu prikladu v HTML (jsme prece na internetu, ze). Podivejte se kolik stranek ma tak zpraseny kod, ze je cloveku hanba i za autora....
Vznikat nove jazyky a shelly samozrejme mohou. Ale pokud neprinasi nic noveho je to zbytecne noseni drivy do lesa. Tahat do Linuxu M$ paskvily, kdyz existuji odpovidajici nahrady je spis kontraproduktivni. Vite, kdyz jste si psaly o tech alternativach, uz roky je k dispozici pro Widle treba Bash. Jenze, to by o nem museli admini vedet a vedet co to taky je. Jeste v pomerne nedavne dobe, nekteri Win admini meli dojem ze nadavam v hispanstine, kdyz jsem se zminil o Bashi. Mozna by meli ten dojem jeste dnes....
To je i odpoved na vasi posledni zminku o pouzivani PWSH na widlich. Samozrejme, ze to pouzivaji Win admini, protoze defakto nic lepsiho nemaji, jeste lepe receno neznaji. A pro Linux/Unix samozrejme neexistuje pouze Bash. Alternativ je mnohem mene. Je skvele, ze se k nim pridal i PWSH, i presto, ze to skoro nikdo na Linuxu nepouzije. M$ se muze na reklamnich meetencich naparavat jak on "Love linux".
> Jenze, to by o nem museli admini vedet a vedet co to taky je. Jeste v pomerne nedavne dobe, nekteri Win admini meli dojem ze nadavam v hispanstine, kdyz jsem se zminil o Bashi
> To je i odpoved na vasi posledni zminku o pouzivani PWSH na widlich. Samozrejme, ze to pouzivaji Win admini, protoze defakto nic lepsiho nemaji, jeste lepe receno neznaji
No, mozna to bude spis tim, ze na Windows opravdu neni bash nahrada PS. Predpokladam, ze jsi v powershellu moc nedelal, ale jeho sila na Windows je prave v tom, ze je objektovy, integrovany s .NET a COM+, existuji v nem cmdlety pro automatizaci administrace prakticky vseho v Windows.
Coz tohle v bashi na Window Server proste neudelas, ty nastroje si totiz na Windows absolutne nekonkuruji.
> Ale pokud neprinasi nic noveho je to zbytecne noseni drivy do lesa. Tahat do Linuxu M$ paskvily, kdyz existuji odpovidajici nahrady je spis kontraproduktivni.
Proc je PS paskvil?
> i presto, ze to skoro nikdo na Linuxu nepouzije
Jen tak pro zajimavost jsem se podival na pocet stazeni verze 6.0.2 z githubu (linuxove release binarky), 14 000 stazeni. Verze je z brezna a nove verze vychazeji pomerne casto, takze to je docela slusne cislo.
Ale samozrejme pokud chapes PS jako nahradu bashe v Linuxu, tak to je samozrejme omyl, ty nastroje si absolutne nekonkoruji ani tu.
To neznamena, ze PS nema na Linuxu vyuziti, treba pro platformne prenositelne skripty mezi Windows a Linuxem, skriptovani s vyuzitim .NET Core, jiz zminovana migrace existujicich veci z Windows, nebo prave treba ono PowerCLI.
2kraxna: Tys tech widli asi moc neadministroval ze? Tuhle sem resil takovou kravovinu, jak schovat ze seznamu exchange skupinu ... mas dve moznosti web ... ve kterym ten checbox nad skupinu soudruzi z M$ nedali, nebo PS = stravis 1/2 hodiny hledanim spravny konstrukce a doinstalovavanim 150 vsemoznych baliku vi buh ceho, ktery uz vzivote na nic nepouzijes.
A pak ve finale zjistis, ze to cos pouzik jako get-... nejde pouzit jako paipu pro set, protoze to na vystupu ma jinej datovej typ nez to ocekava na vstupu ... lol.
> 2kraxna: Tys tech widli asi moc neadministroval ze? Tuhle sem resil takovou kravovinu, jak schovat ze seznamu exchange skupinu ... mas dve moznosti web ... ve kterym ten checbox nad skupinu soudruzi z M$ nedali, nebo PS = stravis 1/2 hodiny hledanim spravny konstrukce a doinstalovavanim 150 vsemoznych baliku vi buh ceho, ktery uz vzivote na nic nepouzijes.
> A pak ve finale zjistis, ze to cos pouzik jako get-... nejde pouzit jako paipu pro set, protoze to na vystupu ma jinej datovej typ nez to ocekava na vstupu ... lol.
Ty jsi asi necetl, co jsem psal - ja jsem psal, "existuji v nem cmdlety pro automatizaci administrace prakticky vseho v Windows." (v porovnani s zminovanym bashem na Windows)
Nikde jsem nepsal, ze se Windows Server administruje snadno :-D
2D.A. Tiger: Bash pro widle sice je (ostatne i spousta dalsich veci) jenze potiz je v tom, ze si kazdych par minut nabijes hubu na tom, ze neco chybi nebo funguje jinak. Ono trebas kdyz chces ve widlich neco narabet s USB diskem, tak velmi rychle zjistis, ze to vlastne neni disk ani pro ty widle, narozdil od tuxe, kde proste USB je dalsi disk.
Zkus si trebas pod widlema na USBcku vyrobit dve partysny ...
[Pavel Tišnovský]
Ahoj
Ted jsi me dostal, budu si muset dat vetsiho bacha, az budu v diskuzi nekoho chvalit :-D :-D :-D
Ale vazne, ten clanek byl dost uzitecny, protoze takhle pekne pohromade informace o TCL/TK nikde moc nejsou (hlavne v cestine). Tak kniha co vysla o TCL/TK, me prisla osobne strasne neprehledna a myslim, ze tenhle jazyk neni uplne odepsany, i kdyz uz se asi tolik nenasazuje....
Powershell je technologicky novší, podľa mňa zásadný rozdiel oproti bashu, ktorý tu nik nespomenul je to, že cez pipeline sa neprenáša text, ale prúd objekov. Je to veľká výhoda, keď ďalší príkaz v pipeline nemusí parsovať text, ktorý je navyše často vo formáte nevhodnom pre spracovanie strojom. Takto napríklad jeden príkaz (ls) pošle položky súborového systému ako objekty, ktoré majú presne definované properties ako názov, cesta, typ, veľkosť, atď. a ďalší príkaz jednoducho pužije, čo potrebuje. Navyše príkaz, čo vytvára objekty nemusí vedieť zbytočnosti, ako napríklad exportovanie a formátovanie, na to zas sú iné príkazy, ktoré vedia vyrobiť zoznam, alebo tabuľku pre človeka, podobne, ako unixový ls, alebo iné čo vedia vyrobiť XML, CSV, atď. Takže ak POSIX je KISS, tak toto je potom KISS na steroidoch ;))
Nikto nehovorí, že teraz majú linuxáci prejsť na PS, že im to prinesie niečo prevratné, ale hodí sa to napr. ak niekto častejšie robí na Win a je viac zvyknutý na PS, nemusí sa trápiť v bashi.
" ďalší príkaz v pipeline nemusí parsovať text, ktorý je navyše často vo formáte nevhodnom pre spracovanie strojom" ???
no ne, jak se da docilit zpracovani textu tak, aby do pipeliny valil format nevhodny pro zpracovani strojem? :-D
pokud nekdo touzi po PS budiz, at ho ma. ale nerad bych se dozil situace, kdyz nejaky frikulin se rozhodne nahradit bezne nastroje touto obskurnosti primo v nejake distribuci.
na bezne veci bash, na zpracovani textu grep, sed, awk, na nejake vetsi veci perl, tcl.
to je bezna praxe, pokud si vzpominam, nic jineho jsem nepotreboval.
(asi jo, ale ted si nevybavuji)
"no ne, jak se da docilit zpracovani textu tak, aby do pipeliny valil format nevhodny pro zpracovani strojem? :-D"
dá sa to napríklad výpismi vo formáte pre človeka. Numerické hodnoty formátované v rôznych jednotkách, číslice oddelované s oddelovaním rádov, useknuté názvy, aby sa zmestili na obrazovku, dynamický formát dátumov atď. Potom sa to musí riešiť tak, že potrebuješ mať podporu rôznych formátov už v príkaze, ktorý by mal len produkovať dáta, veď pozri si koľko formátov a prepínačov má len ls (alebo ťažší kaliber find). To je simple? Ak máš smolu, potom pri parsovaní treba myslieť aj na medzery v textoch a o odlišovať ich od oddelovačov údajov a podobné chuťovky. To naozaj netreba obhajovať. Nie som expert ani na bash, ani PS, nepotrebujem často v nich niečo riešiť, ale pripadá mi, že vývoj ide dopredu a shell o 20 rokov novší má nejaké výhody. Len zatiaľ okrem toho, že je od MS som tu nečítal nejaké argumenty, prečo je tak zlý. Pozná ho tu niekto z kritikov? Vlastne som prekvapený, že tu má toľko ľudí problém s open source softvérom a rieši autora. Veď open source je záruka, že to je neškodný kvalitný softvér vďaka širokej komunite, ktorá má zdrojové kódy a zrejme môže aj prispievať. Ale ako om hovoril, nikoho nepresviedčam, aby naň prešiel, tiež by som kvôli jednoduchým veciam PS neinštaloval. Len neni na škodu rozširovať si obzory.
Chapu, ze binarni datove proudy Vam mohou prijit jako velke plus. Maji vsak ale i minusy. A podle me, dost podstatne.
Mozna jste netusil, ze textove datove proudy byly zvoleny schvalne - diky jejich prenositelnosti. Binarni data zas tak snadno neprenesete a pokud neco vite o serializaci, tak asi taky vite, ze v pripade slozitejsich datovych typu/objektu, musi byt znamo prijemci dat take jejich vnitrni struktura, jinak je to pro prijemce jen trocha binarniho bordelu. A samozrejme prijemce musi vedet jak z tech dat zase zrekonstruovat objekt.
Navic musite rozlisovat typy proudu, nebo se stejne nevyhnete nutnosti zpracovat data do pozadovaneho formatu. (treba v pripade zminovaneho ls, je jedno jestli posilate vystup na obrazovku, nebo na vstupni deskriptor jineho procesu, ci rovnou do souboru - jsou vzdy stejna, v pripade binerniho formatu mate kus pameti s daty a ty znovu musite prevest do formy citelne uzivatelem, atd... )
No a nakonec, mezi dva objekty propojene rourou, muzu vlozit dalsi. A vzhledem k tomu, ze textovy format je vzdy jasny (alespon programatorum) a citelny, bude tam bez problemu fungovat. A i kdyz je zpracovani textu rekneme otravne, a pomalejsi je fakt poradvelmi univerzalni, coz se o kvantech binarnich dat rici neda, proto v klidu bez dlouhych priprav muzu takovou utilitku v klidu napsat i sam.
To ze je neco "technologicky starsi" muze take znamenat, ze je to proverenejsi a propracovanejsi lety praxe ;)
> Chapu, ze binarni datove proudy Vam mohou prijit jako velke plus. Maji vsak ale i minusy. A podle me, dost podstatne.
To je sice hezke, ale takhle objektova pipeline v PowerShell vubec nefunguje. Pointa PS je, ze se jedna o objekty (nikoliv o binarni stream, ktery se musi zpracovavat), navic je to typovane.
Premyslet o PS jako bashi je totiz nesmysl, mnohem vic dava smysl premyslet o PS jako o .NET objektovem shellu / skriptu.
Kazdy cmdlet ma definovany typ(y) vystupu a vstupu, prevod na text u konkretniho typu vysledku je az posledni (volitelna) cast. Takze problem, ktery popisujes neexistuje - resp. ne vic nez treba v Jave ci Pythonu - musis predavat na vstupu spravne datove typy / formaty, jinak ti samozrejme prekladac / interpret rekne, ze to nejde.
Ano, objekty zachrání svět, jen je k nim potřeba heapa a GC, ti bystřejší už větří, že přesně tohle má PowerShell a přesně z toho důvodu není vůbec vhodný na zpracování velkých dat přes pipelines, v bashi nemám problém vzít 100 GB csv soubor a přes sed/awk/tr si ho přestransformovat a přes nc poslat na sftp, prakticky to sebere pár desítem MB paměti a vzládne to 100MB/s.
PowerShell není náhrada bashe a jiného shellu, na to nemá ;). Jak píše kraxna, je to spíše repl pro .NET aplikace a od té doby, co MS portuje .NET do linuxu tam tohle dává dobrý smysl.
Přesvědčovat ostatní o tom, že můj jazyk/systém/stack je lepší než jiný má smysl jen pokud ty lidi dostanu do svého týmu, ostatní ať si dělají a používají co chtějí :).
> v bashi nemám problém vzít 100 GB csv soubor a přes sed/awk/tr
No a v PS taky ne. Staci vedet, ze existuje StreamReader a ConvertFrom-CSV cmdlet. A klidne to muzes odstreamovat na nc, ale je to trochu zbytecne. Pres nc / sftp to klidne posilat muzes i z PS, nebo trochu zapremyslis a pouzijes possh cmdlet, otevres si nativni stream a nemusis spoustet zadne externi procesy a neni tam tudiz ani IPC rezie :-) A jako bonus nemusis resit rucni parsovani CSV, ale mas automaticky vyresene treba escapovani :)
A ze jazyky s GC neumeji zpracovavat velke objemy dat je samozrejme blbost. Nebo mi chces tvrdit, ze treba v Jave, C# ci Pythonu tuhle ulohu nemuzu snadno naimplementovat?
A aby bylo jasno, ja PS nikomu nenutim, ani ho vlastne nepouzivam na nic jinyho na Linuxu nez na PowerCLI.
> ale presne o tom mluvime - PS samo o sobe nic neresi, spise naopak - zavadi dalsi zavislosti, slozitosti (az absurdity) linuxovu filozofii 'textoveho streamu' nahrazuje jakymsi 'objektovym nabozenstvim' (aka Java, ...)
Aha, objektove nabozenstvi a "je to jinak". Tim se to vysvetluje a dalsi diskuse nema smysl :-)
kraxna: Zkoušel jsi někdy zpracovat v PS 100 GB textový soubor? Hele, není to sranda a sežere to dost prostředků, dá ti dost práce to vyladit.
Ano, v diskuzi je vždy nejlepší si vymyslet argument a poté ho vyvrátit :). Nenapsal jsem, že neumí, ale že nejsou vhodné, to je obrovský rozdíl. V jazykách s GC dává velkou práci velké objemy zpracovávat.
Tvoje argumentace spíše vypadá, že ho vnucuješ a obhajuješ až ad absurdum.
100 GB ne, 20 - 30 GB CSV s jednoduchym ETL jsem v nem zpracovaval na jednom projektu (na Windows) a zadny problem to nebyl prave diky tomu streamingu dat pres StreamReader. Ale efektivne pouzivat PS znamena znat aspon zaklady .NET, to je samozrejme pravda.
> V jazykách s GC dává velkou práci velké objemy zpracovávat.
Zajimave, celkem bezne zpracovavame 0.5 - 1 TB denni importy v Jave a zadny extra problem v tom taky nebyl. Pokud tedy pod velkou praci nemyslis vedet jak funguje jazyk, co je streamovani a reaktivni programovani a podobne zakladni veci :-)
> Tvoje argumentace spíše vypadá, že ho vnucuješ a obhajuješ až ad absurdum.
Ne, jen vyvracim nektere nesmysly, protoze narozdil od vetsiny zde, jsem skutecne v PS programoval. A to PS se da vytknout ledasco...
No rozhodne, takove veci jako prace s xml, json ci provolani REST sluzby se v bashi delaji prece mnohem lip sam ps na linuxu nepouzivam krome PowerCLI, ale docela chapu proc nekdo ano a nebude zbytecne prepisovat skripty.
Ale pokud povazujes KVM za nahradu vSphere (ke ktere se pouziva prave PowerCLI), tak to nema diskuse moc smysl...
No, v prvni rade byla rec o KVM, ne oVirt a dalsich postavenych na KVM.
Konkurence to je, uplne nahrada ne a tak ci tak takova diskuse je samozrejme naprosty nesmysl, protoze predstava toho, ze nekdo migruje treba stovky VMWare hostu / VMs jen proto, aby nemusel pouzivat PowerCLI postavene na PowerShellu, je na prosta blbost :-)
Hlavne ked si mozes vyberat. Pokial mas nadnarodnu spolocnost kde spracuje 600.000 ludi, urcite mne ako nejakemu malemu zamestnancovi prejde aby si cely korporat presiel na OpenLdap so sambou. Hlavne ak ma korporat zmluvy z Microsoftom. Clovek by povedal, ze komunita nie je taka kratkozraka.
My ano. Kdysi v dávných dobách to byly mraky Linuxových shell scriptů a kusy programů v C. Pak se přešlo na Pascal, který se používal na Linuxu i Windows. Jenže to bylo kompilované.
Pak se uvažovalo o přechodu na Python nebo Perl. Ale nakonec se zvolil PowerShell Core, protože jsou pro něj poněkud zkousnutelnější knihovny pro práci s XML, firewallem, spouštěním/zastavováním služeb apod.
Na Linuxu ho tedy používáme, byť jediný důvod je ten, aby script mohl být jen v jedné verzi, fungující na všech třech OS, na kterých mohou náš SW provozovat.