Nie da się ukryć, że w dobie obecnej cyfryzacji umiejętność programowania jest nieodłącznym elementem każdego specjalisty z branży IT. Okazuję się tak istotna, że dzieci w przedszkolu uczą się budować proste algorytmy z klocków. Co jednak jeśli przespałeś swój czas i nie potrafisz programować? Czy to koniec marzeń o spektakularnej karierze w IT? Czy jest na to jakiś prosty sposób? Okazuje się, że jest…
Na początek przygody z programowaniem doskonałym wyborem może okazać się PowerShell. Szczególnie jeżeli wcześniej nie kodowałeś, a pracujesz głównie w środowisku Windows (choć system Windows nie jest niezbędny). Olbrzymie spektrum zastosowań oraz łatwa i szybka nauka sprawia, że PowerShell jest jednym z najlepszych punktów wejścia w świat programowania. W zależności od tego czym się zajmujesz, PowerShell pomoże Ci monitorować, konfigurować i automatyzować Twoje działania. Mówiąc krótko – cokolwiek robisz możesz to robić prościej i szybciej. Co więcej w większości przypadków nie musisz nawet myśleć jak programista.
Nauka PowerShell tu i teraz
Konsola PowerShell jest domyślnym składnikiem każdego systemu Windows. Nie musisz zatem pobierać czy instalować żadnego dodatkowego środowiska programistycznego. Wszystko masz już zainstalowane i gotowe do pracy.
Nauka większości języków programowania rozpoczyna się od wyświetlenia na ekranie standardowego „Hello World”, co w większości przypadków nie stanowi problemu i napawa wielkim optymizmem. Jednak w późniejszych etapach obejmujących działania na serwisach, procesach czy konkretnych aplikacjach okazuję się, że to już nie jest takie fajnie, a niedawny optymizm gdzieś wyparował.
Z PowerShellem jest zupełnie inaczej. Dzięki wykorzystaniu specjalnych poleceń zwanych cmdletami (czytaj komandletami), które są wstępnie zdefiniowanymi zestawami poleceń platformy .NET, praca to czysta przyjemność. Dla porównania zobacz dwa cmdlety. Pierwszy wyświetla tekst Write-Host Hello World!, a drugi wszystkie serwisy na komputerze Get-Service.
Jak widzisz, różnica między złożonością poleceń jest kosmetyczna, a rezultaty zgoła inne. W tym wszystkim najlepszy jest fakt, że PowerShell posiada cały szereg gotowych poleceń, które potrafią wykonać praktycznie dowolną pracę, a komponując jedno wierszowe cmdlety w szybki sposób przejdziesz do tworzenia własnych zaawansowanych skryptów.
Łatwość nauki
Mogłeś zauważyć, że w PowerShellu cmdlety występują w notacji „czasownik-rzeczownik”, która jest bardzo przystępna i łatwa do zapamiętania. Przykładowo jeżeli chcesz zidentyfikować konkretny proces np. kalkulator wystarczy, że posłużysz się poleceniem Get-Process calculator. Jeżeli teraz chcesz zamknąć ten proces Get zamieniasz na Stop i temat załatwiony.
Jednym z kluczy do opanowania podstaw konsoli PowerShell jest znajomość czasowników, których w domyślnej instalacji jest prawie 100 (istnieje możliwość tworzenia własnych), a zespół projektowy Windows PowerShell podzielił je na siedem grup w oparciu o typowe zadania, które spełniają.
Znajdują się tutaj polecenia odpowiedzialne min. za diagnostykę, łączność czy zabezpieczenia. Grupowanie bardzo pomaga również w nauce poleceń. Zobacz jak wygląda grupa, która skupia największą liczbę cmdletów, czyli grupa common.
Jeżeli poświęcisz chwilę i bliżej im się przyjrzysz pewnie zauważysz dwie rzeczy. Po pierwsze są to podstawowe czasowniki, z którymi chcąc nie chcąc zetknął się chyba każdy. Po drugie ewidentnie występują pewne pary np. Add/Remove, Enter/Exit czy Get/Set. Oczywiście nie każdy czasownik ma swojego partnera, ale i tak jest to już znaczne ułatwienie nauki.
Należy nadmienić, że w standardowej pracy korzysta się zaledwie z niewielkiej liczby dostępnych czasowników. Może się również zdarzyć, że po większość nigdy nie sięgniesz. Zauważ, że pierwsze 4 czasowniki tak naprawdę załatwiają połowę poleceń w standardowej instalacji PowerShell.
PowerShell pozwala szybko ruszyć z miejsca
Jak już wspomniałem, struktura poleceń PowerShell opiera się na koncepcji „czasownik-rzeczownik”, dzięki czemu nawet bardziej złożone skrypty stają się łatwiejsze do napisania, wykorzystania czy przeczytania. Kolejnym ciekawym zjawiskiem jest potok. Dzięki, któremu łącząc pojedyncze cmdlety w jeden ciąg można osiągnąć niesamowite rezultaty. Przykładem niech będzie kombinacja poleceń z poprzedniego przykładu. Jednak tym razem zapiszę to nieco inaczej.
Get-Process calculator | Stop-process
Mimo iż na pierwszy rzut oka wygląda nieco bardziej skomplikowanie to w dalszym ciągu całość zajmuje jeden wiersz. Pierwsza część (ta przed znakiem potoku | ) pobiera informacje o procesie calculator, następnie informacje te zostają przekazane bezpośrednio do cmdletu Stop-Process. Identycznie można postąpić zakładając, kasując czy modyfikując konta użytkowników, skrzynek pocztowych czy innych elementów systemu. Niezależnie czy będzie to pojedynczy obiekt czy 1000 jego wystąpień. Wszystko w jednym wierszu.
PowerShell jest potężny i wszechstronny
PowerShell posiada praktycznie nieograniczone możliwości. Chociaż standardowa konfiguracja zawiera około 700 cmdletów. To za sprawą PowerShell Gallery jego potęga po prostu nie ma sobie równych. Jakby tego było mało, dzięki oparciu na platformie .NET jesteś w stanie wywoływać metody w celu wykonywania konkretnych zadań np.: obliczeń matematycznych. Spójrz na poniższy przykład obliczenia pierwiastka kwadratowego czy wartości bezwzględnej.
Co więcej z poziomu konsoli PowerShell możesz uruchomić wszystkie programy ze standardowego wiersza poleceń: ping.exe, ipconfig.exe czy netstat.exe działają doskonale.
Solidne podstawy
Na początku nauki programowania zwykle się o tym nie myśli. Ale wraz z postępami nieuchronnie zbliża się czas, gdy zaczniesz zauważać pewne ograniczenia danego narzędzia. Niektóre specjalistyczne rozwiązania będą wymagały wykorzystania innego podejścia i innych metod. Jednym z rozwiązań jest nauka nowego języka programowania i niezależnie od tego czy kolejny wybór padnie na Bash, Perl czy Python znajomość PowerShella da Ci solidne fundamenty i znacznie przyśpieszy proces nauki.
PowerShell zapewni Ci pracę
Z roku na rok rynek pracy dla administratorów systemów i inżynierów DevOps stale się powiększa, a tworzenie skryptów czy automatyzacja infrastruktury to kluczowy zestaw umiejętności. Dlatego też dodanie PowerShella do swojego CV z pewnością zwiększy jego atrakcyjność. A nawet jeżeli nie szukasz pracy to oskryptowanie powtarzalnych zadań czy zdalne zarządzanie komputerami sprawi, że w pełni zapanujesz nad swoim czasem i staniesz się bardziej wydajnym pracownikiem. A dla twojego szefa to będzie to informacja, że już czas na podwyżkę.
Jeżeli w dalszym ciągu nie czujesz się przekonany, to koniecznie zapoznaj się z artykułem 12 powodów, dla których warto nauczyć się PowerShella.
Znasz inne motywy? Daj znać w komentarzach.
Nie miałeś jeszcze przyjemności z konsolą PowerShell dołącz do mini szkolenia.
Jeżeli natomiast podobał Ci się wpis, nie zapomnij się nim podzielić i dołącz do naszego newslettera, aby otrzymać jeszcze więcej wartości.