Hrajeme si v PowerShellu. Nandáme to Linuxákům a jejich dokonalým terminálům

Můj názor  |  zobrazit i odpovědi (trvale)  |  řadit od nejstarších Komentáře nyní řadíme od nejnovějších.
Tímto odkazem můžete řazení změnit.
 |  nových názorů: 106

Názory k článku

PD
04. 05. 2022 23:17

Bash toho sám o sobě moc neumí, ale dokáže propojit stovky miniaplikací do jednoho monstrozního celku. PS toho umí dost, ale na spolupráci win aplikací moc spoléhat nemůže. Ve prospěch Bashe mluví fakt, že takhle funguje už nějakých 30 let. To co se člověk naučil před 20 lety využije i dneska. PS je tady pár let a nikdo nezaručí, že MS rupne v kouli a nahradí ho něčim jinym. Dříve se člověk učil BAT, potom VBS, teď zase PS. Nejraději mám Python, ten je všude (Amiga, Symbian, Android, Win, Linux...) a má spoustu dokumentace. Až na tu "aféru" Python 2 --> Python 3.

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět
avatar
04. 05. 2022 19:11

Spousta toho powershell neumí -_- např. netcat(nc), dig, awk, wget, sha256sum atd..... mohl bych jmenovat pomalu celý busybox - na pár věci aliasi má, ale je to bída.

Souhlasím  |  Nesouhlasím  |  Odpovědi (2)Zavřít odpovědi  |  Odpovědět
03. 05. 2022 22:21

Microsoft PowerShell lets you track Windows Registry changeshttps://www.bleepingcomputer.com/news/microsoft/microsoft-...

Souhlasím  |  Nesouhlasím  |  Odpovědět
03. 05. 2022 13:00

PowerShell se občas hodí, ale pro jeho pochopení by mu musel člověk věnovat 24h denně. Konstrukce "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" moc praktická není, když chci u uživatele skript spustit dávkově - konstrukce by byla uvnitř skriptu, který ale v té chvíli nebude fungovat. Já používám obrat <PowerShell.exe -ExecutionPolicy Bypass -Command "& 'skript.ps1' %1 %2">, ten funguje vždycky.

Souhlasím  |  Nesouhlasím  |  Odpovědi (3)Zavřít odpovědi  |  Odpovědět
03. 05. 2022 09:22

Apple je prej suverenne nejlepsi ve vsem, holt Amerika, už na něj šetřím...Linux nebo Windows,,,,prej strašná zaostalost je a prý jen pro chudé..žádná prestiž

Souhlasím  |  Nesouhlasím  |  Odpovědět
02. 05. 2022 20:05

A co z toho neumí shell již 20 let?

Souhlasím  |  Nesouhlasím  |  Odpovědi (3)Zavřít odpovědi  |  Odpovědět
avatar
02. 05. 2022 16:48

Asi bych spíše volil toto: (wget http://www.cnb.cz/cs/financni_trhy/devizovy... ).Content -split "`n"|Select-Object -skip 1|`ConvertFrom-Csv -Delimiter '|' | ft

Souhlasím  |  Nesouhlasím  |  Odpovědi (9)Zavřít odpovědi  |  Odpovědět
avatar
02. 05. 2022 16:33

Eště mi v článku chybí výstup do gui (nebo práce s gui), což powershell umí taky.Jo a pokud někdo chce powershell all in příručku tak tu je jedna free:
https://books.goalkicker.com/PowerShellBook/

Souhlasím  |  Nesouhlasím  |  Odpovědi (7)Zavřít odpovědi  |  Odpovědět
02. 05. 2022 11:03

Děkuji autorovi za popularizaci PowerShellu. Ony připravené příkazy jsou taková smíchanina různých wrapperů okolo wmic, exe nástrojů a .NET frameworku, která navíc vznikla v době, kdy ještě ConHost.exe neuměl předávat standardní vstupy a výstupy mezi programy, a tak je to řešené uměle s velkými ALE. I když je od verze 6 multiplatformní si nedokážu si vůbec představit, jak bych psal nějaký skript, aby fungoval v obou prostředích (instalace ovladače tiskárny např.), vyjma práce se se surovými daty, a na to už je zase lepší Python.
Trochy mě mrzí, že tu v diskusích nikde není diskuse ohledně porovnání vlastností. Nejspíš protože PS vlastně moc lidí nepoužívá, což je velká škoda. Z mojí zkušenosti Windows Administrátoři radši manuálně 200x proklikají nějaký postup, než aby vymýšleli automatizaci. V Linuxu je to zase opačně že? :)

I tak bych byl rád, kdyby mu víc lidí dalo šanci. Za mě argumenty jsou:
-lepší čitelnost kvůli operaci zmíněné hned na začátku příkazu a celým názvům parametrů, hlavně když spouštíte skript od někoho jiného grep = Select-String -Pattern, mkfs = New-Partition -Size atd.. ale to je asi o zvyku- ctrl + mezerník InteliSence nabídka možností i pro parametry za napsanou pomlčkou – za mě věc kvůli které mám pwsh i na linux serverech protože si ty přepínače nemůžu zapamatovat a tohle je velký pomocník- data mají vždy OOP strukturu, lze jednoduše za příkaz dát | gm (jako get-member) pro vypsání struktury nebo Format-List * či Format-Table * pro strukturované vypsání dat. Např.: ls | fl * pro detaily souborů- automatizace napříč windows prostředím, klidně včetně simulování stisků kláves, myši a proklikání nějakého GUI- procházení event logu je práce s objekty kde funguje filtrování, hledání pomocí select, where atp. oproti Linuxu, kde se průzkum logu vždycky zvrhne na grep, regexy a awk.
- celý jazyk je založený na .NET frameworku a je objektově orientovaný. Chyby = vyjímky určitého typu s popisem problému a kontextem + fungující try / catch- s registrem se pracuje jako se souborovým systémem (podobně jako /proc) což značně zjednodušuje nastavování oproti ručnímu zásahu do /etc .conf souborůA nevýhody:
- největší nevýhoda je rychlost. Chtěl jsem třeba pomocí iwr (Invoke-WebRequest zmíněný v článku) stáhnout všechny .ts chunky z online streamu a ta funkce je tak pomalá, že inicializace každého requestu zabere snad 2s kvůli reportování stavu do gui přes Write-Progress, ale právě tím, že lze pracovat s čímkoliv z .NET frameworku, lze použít přímo WebClient.DownloadFile() což je rychlostně na úrovni wget- neexistence příkazu sudo.. musí se obcházet přes start-process -verb runas což je opravdu ohavné řešeníPěkný den ;)

Souhlasím  |  Nesouhlasím  |  Odpovědi (5)Zavřít odpovědi  |  Odpovědět
02. 05. 2022 10:23

JJ, v jedné bývalé práci jsem stahoval CSV s cenami od dodavatele, konvertoval do struktury CSV, kterou bral náš eshop, automaticky změnil ceny podle nějakých interních pravidel (tohle bylo nejtěžěší část, protože se musely produkty rozparsovat podle jenotlivých kategorií atp. (plus zaokrouhlení). Předtím to dělal obchodník ručně (samozřejmě s chybami), skript běží dodnes, nedávno jsem jim dělal nějaké úpravy (dodavatel udělal nějaké změny v tom zdrojovém CSV). Mají k tomu i malou UI appku, aby mohli měnit marže podle kategorií.

Souhlasím  |  Nesouhlasím  |  Odpovědět
02. 05. 2022 08:55

PoSh používám snad, co existuje. Dlouho jsem nechápal, proč Microsoft vytvořil takový prapodivný jazyk (viz operátory, příšerné zpracování chybových stavů apod) a proč ho, proboha, pojmenoval Power! Ale pak jsem okusil shell... Ano, v porovnání s ním je power. Ano, MS chtěl dát adminům jazyk, který znají z "unixu". Ale i tak. Proč raději nevzal nějaký ze svých jazyků z VS a nedal mu "interpretovanou" podobu?! Njn, alespoň je dnes už pwsh multiplatformní, takže to utrpení je jenom jednou a není třeba skripty přepisovat pro obě prostředí...

Souhlasím  |  Nesouhlasím  |  Odpovědět
02. 05. 2022 08:28

Článek pěkný, ale chybí tam vysvětlení základních rozdílů mezi těmi shelly. Když píšete "nandáme to linuxákům", tak by bylo třeba napsat, proti jakému shellu se vymezujete. Takto si musíme domyslet, že pravděpodobně myslíte BASH. Jenže on je právě diametrální rozdíl mezi BASHem a PS. BASH vše zpracovává jako TEXT, kdežto v PS je vše .NET objekt. Linuxáci mají k dispozici také objektové shelly, např. nushell (https://github.com/nushell/nushell/), ale i samotný PowerShell.

Souhlasím  |  Nesouhlasím  |  Odpovědět
02. 05. 2022 08:07

Powershell je sice mocný nástroj, ale přijde mi, že se nikdy moc neprosadil. A to byl uveden v roce 2006, takže je tady patnáct let.
Na jednoduché věci typu dir, echo atp. je to moc složité, na složité věci se používají jiné nástroje.

Souhlasím  |  Nesouhlasím  |  Odpovědi (7)Zavřít odpovědi  |  Odpovědět
avatar
02. 05. 2022 00:01

koho zajima, tak muze mrknout na https://aka.ms/mslab ... ve scenarios je hromada prikladu jak ridit MS infrastrukturu powershellem.

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět
01. 05. 2022 23:28

Microsoft byl se skriptovacimi jazyky vzdy o trochu uspesnejsi z hlediska programatoskeho pristupu, naopak to bylo vzdy s uzivatelskou privetivosti. Treba win32/cmd je v podstate cisty basic bez ruznych cunaren, ktere obsahuje bash. Naopak Bash je vysoce vyvinuty automatizovany skriptovaci nastroj typu "proved to na jeden prikazovy radek", naopak se prizpusobal uzivatelske privetivosti az moc a je docela zadelany. PowerShell je opet z hlediska pristupu k programovani vyspelejsi nez bash, je vsak uzivatelsky o dost mene privetivy. Nicmene se jedna o vykonny a dnes multiplatformni skriptovaci nastroj, ktery zvlada temer plnohodnotne systemove programovani. Umi volat C ckove libky, je mozne v nem psat moduly a rozsirovat jej, proste veci, o nich si muze stary bash nechat jen zdat. Oblibenost programovaciho nastroje je casto ovlivnena spolehlivym a snadno pouzitelnym API. V cemz graduje prave linux, tohle Microsoftu nikdy moc neslo. Programovat v shellech microsoftu je podstatne narocnejsi nez v tech linuxovych, ale zase je mozne v nich psat temer plnohodnotne systemove aplikace (pokud prehlednu perl, python, apod). Znalost PowerShellu je neco co se urcite neztrati. V komercni sfere se pomalu zacina upoustet od bashe a casto se prechazi na powershell. Protoze, pokud se zjisti nejaky problem se sw produktem, je mozne v powershellu naprogramovat reseni, ktere obchazi chybovou sekvenci. V bashi jsou moznosti znacne limitovane, ale je mozne v nem programovat take.

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět

Výborný článek, děkuji.

Souhlasím  |  Nesouhlasím  |  Odpovědět
01. 05. 2022 22:22

Výborný článek!Jen musím podotknout, že kurzovní lístek ČNB je opět odrazem státního IT. Mít to takhle v TXT souboru bez žádných standardů "na prasáka", takže absolutně KAŽDÝ v jakémkoliv programovacím jazyku či systému, si bude muset pěkně a dost "zaprogramovat", aby z toho něco použitelného dostal, tak to je na nějakou anticenu!Vím, že tímhle přístupem český stát "dává práci" mnoha programátorům ve spoustě firem, kteří se živí jen tím, že řeší integrace z a do různých státních nestandardních s*aček na standardní systémy.Někdy v minulém roce jsem viděl jedno takové řešení, které řeší integrace do DESÍTEK podobných státních s*aček a firmy si to rády kupují, protože kdyby měly řešit vývoj vlastních řešení a jejich údržbu, potřebovaly by další tým programátorů jenom na to.Je neuvěřitelné, že všechna taková práce je dělána vlastně ZBYTEČNĚ jen proto, že stát poskytuje takovouto "kvalitku". Některé věci jsou na ČR skvělé, ale díky tomuto si rád dělám vtípky o "Čechystánu". LOL

Souhlasím  |  Nesouhlasím  |  Odpovědi (35)Zavřít odpovědi  |  Odpovědět
avatar
01. 05. 2022 22:01

Moc dobře udělaný článek. Sem zvědav jestli změní můj názor na PowerShell. Ten koncept sem nikdy nepochopil. Připadá mi, že plácá dohromady všechno u čeho někdo řekl tohle co mají oni tam nemáme, tak to tam dáme.
Kdykoliv něco potřebuju, tak si musím najít na internetu přesně daný skript. Je to totiž přehledné jako web microsoftu.
Určitě to má obrovské možnosti, ale provázanost a promyšlenost jako mají unixové shelly sem v tom nikdy nenašel. Už jen ty aliasy, ono je teoreticky fajn, že funguje to i to, ale prakticky je v tom bordel a ztěžuje to orientaci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
01. 05. 2022 21:51

No já nevím... Jako vypadá to pěkně, to ne že ne, ale v bashi by to bylo nějak jakože curl -s https://www.cnb.cz/cs/financni_trhy/devizovy... | grep USDJe to takové rychlejší, interaktivnější, asi bych neměnil

Souhlasím  |  Nesouhlasím  |  Odpovědi (4)Zavřít odpovědi  |  Odpovědět
01. 05. 2022 20:55

Vetsinou na windowsi prikazove radce spoustim nasledujici prikazy: git … npm/yarn … a ssh … Ale jinak souhlasim s drivejsim prispevkem: moc pekny clanek, diky.

Souhlasím  |  Nesouhlasím  |  Odpovědi (4)Zavřít odpovědi  |  Odpovědět
avatar
01. 05. 2022 20:33

skvělej článek, bez kapitol a informační hodnota perfektní... 👍🙂
Proč tam nemáte víc tak kvalitních redaktorů a zaměstnáváte samý zoufalce který umí tak leda překládat bulvární témata pomocí google translatoru.

Souhlasím  |  Nesouhlasím  |  Odpovědi (3)Zavřít odpovědi  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor