PowerShell postao open source

Još jedna lepa vest iz Microsoft-a: shell i skriptni jezik za automatizaciju na Windows-u koji koristi blagodeti .NET razvojnog okvira, postao je open source i time dobio svoje verzije za Linux i macOS.

Today’s customers live in a multi-platform, multi-cloud, multi-OS world – that’s just reality. This world brings new challenges and customers need tools to make everything work together. Microsoft is working company-wide to deliver management tools that empower customers to manage any platform, from anywhere, on any device, using Linux or Windows. This shift to a more open, customer-obsessed approach to deliver innovation is one of the things that makes me most excited to come to work every day.

You’ve heard Satya Nadella say “Microsoft loves Linux” and that’s never been more true than now. Nearly one in three VMs on Azure are Linux. Nearly 60 percent of third-party IaaS offers in the Azure Marketplace are open source software (OSS). We have forged strong industry partners to extend choice to our customers. We’ve announced SQL Server on Linux, as well as open sourced .NET. We added Bash to Windows 10 to make it a great platform for developing OSS. And, we’re active contributors and participants to numerous open source projects (e.g. OpenSSH, FreeBSD, Mesos, Docker, Linux and many more) across the industry.

Today, we are taking the next step in our journey. I am extremely excited to share that PowerShell is open sourced and available on Linux. (For those of you who need a refresher, PowerShell is a task-based command-line shell and scripting language built on the .NET Framework to help IT professionals control and automate the administration of the Windows, and now Linux, operating systems and the applications that run on them.) I’m going to share a bit more about our journey getting here, and will tell you how Microsoft Operations Management Suite can enhance the PowerShell experience.

Više:
PowerShell is open sourced and is available on Linux

U ovom trenutku je dostupan za Ubuntu, CentOS i RedHat.

Mislim da to Linux svetu nije potrebno. Mi imamo bash :slight_smile:

@Miki Bash nema veze sa PowerShell-om, kao što ni PowerShell nema veze sa Windows-ovim Batch-om. Bash i Batch su obične ljuske sa ograničenim mogućnostima jer uglavnom zavise od drugih programa, dok PowerShell ima čitav .NET okvir za leđima (recimo System.IO.Compress.FileSystem klasa se koristi za raznorazne operacije sa arhivama) koji omogućava naprednije mogućnosti.

@Zeyn
Ovde se radi o 2 potpuno različite filozofije, od kojih je Unix starija, naprednija i dokazano fleksibilnija.
Na primer, kakva je suštinska razlika između bash/zsh/štagod sa tar arhiverom i .NET klase za operacije sa arhivama?
Ne tvrdim da je PS loš, naročito za win korisnike za koje je to relativno nova stvar i koji kroz njega uočavaju sve prednosti takvog načina rada, ali nema tu ničeg novog što na Unixu ne postoji već skoro pola veka.
Takođe, lepo je što je M$ otvorio kod za PS, ali…džabe mu marketing, bar što se tiče moje malenkosti :wink:
Screenshot_2016-08-19_17-53-17.png

@Dragan Ako se radi o dve različite filozofije, mislim da ih nije korektno porediti. Pokretanje jedne komande PS-a u Terminalu je nedovoljno da shvatiš moć PS-a i generalno, kada pogledaš samo iz tog primera, nikakve razlike i nema - crn prozor, komanda, output. To je to. To opet povlači sa sobom pitanje standardizacije i toga kako će to funkcionisati recimo sa formama, što je meni recimo jedna od bitnijih stvari. .NET je čitav razvojni okvir koji u sebi sadrži klase za mnoštvo operacija - neke od tih operacija nisu standardne na Linuksu ili je potrebno instalirati dodatne pakete kako bi one funkcionisale i u tom pogledu se i PS direktno razlikuje od Windows-ovog Batch-a : ovaj drugi služi samo za daleko jednostavnije operacije, dok ovaj na svojim leđima nosi čitav .NET u koji je uloženo dosta godina razvoja i koji nije slučajno jedan od glavnih izbora developera širom sveta (Unity koji se koristi i za cross-platform igre koristi C# i JS kao jezike za razvoj, .NET Core koristi C# između ostalih (takođe open-source), koristi ga Xamarin za mobilne aplikacije (iOS, Android, Windows Phone)).

Jasno je da tebi ovo ništa ne znači jer verujem da i nisi imao prilike da radiš sa PS-om (ispravi me ako grešim), ali je svakako korisno da bude dostupan na različitim platformama, bez obzira što mu je fokus na Windows automatizaciji - recimo meni je stoput lakše da čitam PS kod od većine Bash koda, ali stoji da je isti efikasniji na Unix-like platformama.

Naravno da nije korektno, ali ta “nekorektnost” dolazi od strane M$-a…pa nisam ja pravio aliase u PS :smiley:
Da, u pravu si, nisam koristio PS, niti imam nameru zato što nisam win programer, ali imam ponešto iskustva u korišćenju i wintenda i linuxa…što reče jedan moj prijatelj, vezano za nešto sasvim deseto…“Jbg, nisam ginekolog, ali umem da pogledam…” :smiley:
Šalu na stranu, možda bi bilo bolje uporediti .NET platformu sa npr QT platformom, šta misliš?

Zato sam i rekao da su to 2 filozofije…pravi shell je samo unix, wintendo PS će možda postati ozbiljan na drugim sistemima tek kada win pređe na neki od *nix kernela :wink:

FUCK YOU, Microsoft!

Mimo rasprave oko tehničkog aspekta korišćenja PS, gde još može biti različitih tumačenja, oko licence nema nikakvog dvoumljenja…ona je još jedan dokaz o zlonamernom pristupu M$-a prema FLOSS svetu generalno, i pokušaju ubacivanja spajvera u taj svet pod maskom njihove verzije “open source”. Ko god bude koristio njihov softver pod takvim uslovima, i ne zaslužuje bolje od onoga što mu se servira.

MICROSOFT SOFTWARE LICENSE TERMS
MICROSOFT .NET LIBRARY
These license terms are an agreement between Microsoft Corporation (or based on where you
live, one of its affiliates) and you. Please read them. They apply to the software named above,
which includes the media on which you received it, if any. The terms also apply to any Microsoft
• updates,
• supplements,
• Internet-based services, and
• support services
for this software, unless other terms accompany those items. If so, those terms apply.
BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT
USE THE SOFTWARE.
IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.

  1. INSTALLATION AND USE RIGHTS.
    a. Installation and Use. You may install and use any number of copies of the software to design,
    develop and test your programs.
    b. Third Party Programs. The software may include third party programs that Microsoft, not the
    third party, licenses to you under this agreement. Notices, if any, for the third party program are
    included for your information only.
    2. DATA. The software may collect information about you and your use of the software, and send that
    to Microsoft.
    Microsoft may use this information to improve our products and services. You can learn
    more about data collection and use in the help documentation and the privacy statement
    at Microsoft Visual Studio Product Family Privacy Statement . Your use of the software operates as your
    consent to these practices.

Cela licenca je u
/opt/microsoft/powershell/6.0.0-alpha.9/license_thirdparty_proprietary.txt

@Dragan A kako je to Unix shell “pravi shell” (ako misliš na sh koji je razvio Ken Tompson za UNIX), a Windows-ov nije? Unix shell nije nastao prvi već je bio razvijen po ugledu na Multics shell koji je opet bio razvijen prema RUNCOM-u koji je Luis Puzin razvio još 65’, prema tome ne razumem na šta tačno misliš kada kažeš pravi. Najuticajniji posle njega su postali Bourne shell (bash) i C shell (csh i poboljšani tcsh). Naravno, imamo i razne varijacije poput zsh, rc, es, fish, sch, wish…

Što bi prelazili na neki *nix kernel i bacili u vodu Windows NT koji je sasvim solidno razvijen (jeste da ima nekih jako glupih rešenja i “dečijih bolesti” u sebi), čak u nekim aspektima i bolje od Linuksa - sad će da me linčuju fanboy-evi, ali tebi bar ne moram da objašnjavam zašto je u poređenju sa *BSD sistemima Linux mala maca (nije džabe MS koristio kod iz FreeBSD-a za TCP/IP) :slight_smile:

?u=http%3A%2F%2Fih0.redbubble.net%2Fimage.195585400.9534%2Fflat%2C550x550%2C075%2Cf.u2.jpg

Pa ovo ni na windowsu nije popularno, sta ocekuju da ce neko na Unixima pored svih shellova koristit ovo. :smiley:

btw. jedan zanimljiv shell: the xonsh shell — xonsh 0.4.5.dev2 documentation

@gagiD Nije kod nas popularno, a Windows administratori u svetu ga koriste. Nije ovo za Linux ni namenjeno dok .NET Core ne sazri, ali za sada može da dobro posluži za daljinsku administraciju Windows i Azure servera.

Sa simpatijama gledam na M$ advokatisanje sa obrazlozenjem “tog-i-tog” noviteta koji je usvojio “do sada najbolji” Vindoz, a koji po pravilu predstavlja inferiornu primenu resenja koja je Unix usvojio pre par decenija.

Vindoze su pravljene po nalogu i dizajnu nesvrsenog studenta za daktilografkinje i advokate.

Unix su napravili programeri za programere.

Dakle, to su babe i zabe.

@bestragamuglava I ja sa simpatijama gledam na slepe fanove koji su posle godinu/dve dana korišćenja umislili da su proovi (ovo se ne odnosi na tebe niti na bilo koga u ovoj temi, da se ne nađeš uvređenim) :wink: Znaš, postoji nešto što se zove objektivno viđenje stvari, a postoji i čist hate. Mora da je i .NET inferiorna primena Qt-a. :smiley:

Dakle celu Silicijumsku dolinu po tebi pokreću zombiji po nalogu “nesvršenog studenta” (obzirom da je velik broj programera koji su radili na NT kernelu iz Microsoft-a prešao da radi u velike kompanije) :slight_smile: Jako zrela konstatacija. Unix programeri su vrh vrhova, a svi ostali su g*vna - jes’, al’ malo juče. U poslovne strategije MS-a ne ulazim, ali reći kako su Windows programirali nesvršeni studenti samo dokazuje moju tvrdnju o fanboy-izmu i nemogućnost da se pogleda istini u oči. Niko ne osporava da je Windows pun nedostataka, ali navedi mi koji sistem nije? Je l’ imaš čime da osporiš tvrdnju da je NT kernel solidno razvijen?

Evo ga taj nesvršeni student koji je jedan od tvoraca Windows NT-a i mnogih drugih sistema :slight_smile: Nisi valjda zaista mislio da je Bil pisao NT? :stuck_out_tongue:
Dave Cutler - Wikipedia, the free encyclopedia

Očekivao sam da će odmah neko da protumači ovo kao advokatisanje, al’ šta da ti kažem, svako neka misli šta hoće :slight_smile: Ovo su samo plain facts. Samo tvoje vrednovanje čoveka po formalnom obrazovanju dosta govori, znači svi koji nemaju jedan običan papir mogu odmah da napuste IT sektor po tebi, bilo da su one plaćene ili ne :slight_smile:

PS nije “pravi” u smislu da je još uvek težak pubertetlija u odnosu na zrelu ličnost, odnosno unix shell, i to svih zilion varijanti.
Ne znam za tvoja iskustva, ali moja sećanja/iskustva što se tiče wintenda sežu u doba kada je još bio običan dos…ne moram valjda da objašnjavam kakva je razlika između jednokorisničkog dos-a i multikorisničkog unixa bila, i ostala. isto se odnosi i na win gui koji je prilično trapavo i nestručno nakalemljen na taj isti dos, e da bi se dobilo nešto što će samo izdaleka moći da podseća na XWindows…o pravom shell-u na tom frankenštajnu nema ni govora.
Poslednji win koji sam intenzivno koristio je bio NT 3.51…vrlo ozbiljan i napredan kernel za to vreme, kameno stabilan, ali nažalost opet osakaćen za iole ozbiljniji shell. Batalio sam ga kada se pojavila verzija 4.0, koja je flertovala sa tadašnjom 95-icom. Nekako u to vreme sam prešao na linux (95-6 godina prošlog veka).
M$ se dozvao pameti što se shell-a tiče tek pre nekih 7-8 godina, kada su valjda konačno shvatili da idu u ćorsokak sa svojim nametanjem isključivo gui rešenja za sve i svašta.
Zato sam i rekao “nisam ja pravio aliase u PS”, ili direktnije: čemu uopšte aliasi u PS ako nije tačna očigledna činjenica da je unix shell defakto standard u tom svetu?
Čak i sada, M$ pokušava preglasnim marketingom da nametne svoju verziju shell-a, ili bar da stvori iluziju kako su napravili nešto “novo”…nema tu ništa novo, čak i taj PS koji se oslanja na .NET završiće na đubrištu istorije, dok će unix shell nastaviti da funkcioniše stabilno kao i do sada što je bilo unazad nekoliko decenija.

O tome i pričam :slight_smile: Ozbiljan shell ne bi ni imao neku svrhu na Windows-u jer većina korisnika radi stvari preko GUI-a.

Nije to nametanje - taj shell ima svoju svrhu, kao što i Unix shell-ovi imaju svoju svrhu, koja je opet drugačija. Da tehnologije tako lako završavaju na đubrištu istorije, odavno bi smo se pozdravili sa PHP-om, no, masa čini čuda. Sada je PHP donekle sazreo. U IT svetu svašta može da se desi u periodu od par godina.

Na *nix sistemima taj PS ima jednu jedinu svrhu…da otvaranjem koda, pokuša da privuče ponekog zaludnog korisnika ne bi li ga probao na linuxu.
Niko ko koristi bilo koju verziju *nix sistema neće pri zdravoj pameti koristiti PS umesto unix shell, kao što neće ni masirati mozak šta rade wintendo programeri i korisnici…neka njega wintendo armija koristi koliko god, i zašta god želi, što se mene tiče, poruka je jasna, da je ne ponavljam :slight_smile:

Svako ima svoje mišljenje :wink: Govoriš o korisnicima kao o “armijama”, a zaboravljaš da ima i onih koji koriste oba sistema - to je i jedan od razloga jaza i večitog besciljnog prepucavanja i “svetih ratova” Mac vs. Windows vs. Linux :slight_smile: Nema razloga da se ne iskoriste blagodeti softvera koji je već open source, a daljim otvaranjem .NET-a se može postići samo bolji efekat.

Nije PS ni napravljen da se koristi umesto Unix shell, ali već sam napisao to u nekom od prethodnih postova.

Za one koji koriste oba sistema, to je verovatno korisno…za one koji ne koriste wintendo, ne vidim nikakvu svrhu, no opet sa druge strane, u pravu si…svako ima svoje mišljenje.
Ako već pričamo o “korisnosti”, hajde jedan konkretan primer, koji koristim svakodnevno da proverim da li ima apdejta na trios repo serveru:

#!/bin/bash sshpass -p XXXXXXXXXXXX ssh [email protected] << EOF cd /var/packages/trios/mia reprepro checkupdate EOF
Kako bi ti izveo ovu vrlo prostu bash skriptu u PS?

Dragane, Vase pitanje je ekvivalent tome kako bi ste Vi bash skriptom instalirali IIS web server. Nisam ljubitelj PS-a, ali sam konkretno ovaj primer odradio u jednoj od proslih firmi.
Ono sto mi se kod PS konkretno svidelo je sto novim Windows korisnicima malo pokazuje da cli ima svojih prednosti, pa tako sve vise ljudi skriptari u njemu, sto povremeno dovede do toga da zalutaju i u bash vode. Sto je super, a i da to nije slucaj, opet je moguce automatizovati tonu stvari sa istim na Windowsu.

Bitno je da smo se razumeli :wink:

Obzirom da sam po struci programer , a ne sysadmin i PS uglavnom koristim za automatizaciju nekih jednostavnijih stvari, nemoj me držati za reč u vezi ovoga:

New-SshSession -ComputerName Trios -Username * -Password * Enter-SshSession -ComputerName Trios cd /var/packages/trios/mia reprepro checkupdate exit

Bilo bi lepo kada bi se javio neki Win admin da ukaže na eventualne greške ako ih ovde ima :slight_smile:

Another really powerful feature was added to the Get-Content cmdlet a while ago (maybe in PowerShell 4.0). That is the –Tail parameter. By using the –Tail parameter, I can retrieve only the last however many lines from a text file. Again, this used to require some scripting, but now it is part of the cmdlet. Here is an example:

Ed Wilson, Microsoft Scripting Guy

:smiley: :smiley: :smiley: