Chcesz nauczyć się programowania? Najpierw poznaj PowerShell
Spis treści
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). Co prawda PowerShell nie jest typowym językiem programowania, gdyż uznawany jest za język skryptowy. Mimo wszystko olbrzymie spektrum zastosowań oraz łatwa i szybka nauka sprawia, że PowerShell jest jednym z najlepszych punktów wejścia w świat kodowania. 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 (oczywiśćie możesz to zrobić, wybierając np. Virtual Studio Code). 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.
Listing 1 Wyświetlenie tekstu “Hello World” za pomocą cmdletu Write-Host
PS C:\Admin> Write-Host "Hello World"
Hello World
Listing 2 Wyświetlenie listy serwisów za pomocą cmdletu Get-Service
Status Name DisplayName
------ ---- -----------
Stopped AarSvc_14784c Agent Activation Runtime_14784c
Stopped AJRouter Usługa routera AllJoyn
Stopped ALG Usługa bramy warstwy aplikacji
Running ApHidMonitorSer... AlpsAlpine HID Monitor Service
Running AppIDSvc Tożsamość aplikacji
Running Appinfo Informacje o aplikacji
Running AppMgmt Zarządzanie aplikacjami
Stopped AppReadiness Przygotowywanie aplikacji
Stopped AppVClient Microsoft App-V Client
Running AppXSvc Usługa wdrażania pakietu AppX (AppX...
Stopped AssignedAccessM... Usługa AssignedAccessManager
Running AudioEndpointBu... Konstruktor punktów końcowych audio...
Running Audiosrv Windows Audio
Stopped autotimesvc Czas komórkowy
Stopped AxInstSV Instalator kontrolek ActiveX (AxIns...
Stopped BcastDVRUserSer... Usługa użytkownika DVR z gry i tran...
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 jednowierszowe cmdlety w szybki sposób przejdziesz do tworzenia własnych zaawansowanych skryptów.
Łatwość nauki
Można było 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 wystarczy, że posłużysz się poleceniem Get-Process i nazwą danego procesu.
Listing 3 Wyświetlenie procesu CalculatorApp za pomocą cmdletu Get-Process
PS C:\Admin> Get-Process CalculatorApp
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
581 45 30388 80072 0,27 2800 2 CalculatorA
Jeżeli teraz chcesz zamknąć ten proces Get zamieniasz na Stop i temat załatwiony.
Listing 4 Działanie cmdletu Get-Process
PS C:\Admin> Stop-Process -Name CalculatorApp
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).
Listing 5 Zliczenie czasowników występujących w PowerShellu
PS C:\Admin> (Get-Verb).count
98
W celu łatwiejszego przyswojenia czasowników projektanci PowerShela podzielili je na siedem grup w oparciu o typowe zadania, które spełniają. Przykładowo znajdziemy tu czasowniki cmdletów odpowiedzialnych za diagnostykę, komunikację czy bezpieczeństwo.
Listing 6 Wyświetlenie grup czasowników występujących w PowerShellu
PS C:\Admin> Get-Verb | Select-Object group -Unique
Group
-----
Common
Data
Lifecycle
Diagnostic
Communications
Security
Other
J
eżeli teraz nieco bardziej zagłębimy się w jakąś grupę i przyjrzymy występującym tam czasownikom to można zauważyć dwie rzeczy.
Listing 7 Wyświetlenie czasowników z grupy “common”
PS C:\Admin> Get-Verb | Where-Object group -Match 'common' | Format-Wide verb -AutoSize
Add Clear Close Copy Enter Exit Find Format
Get Hide Join Lock Move New Open Optimize
Pop Push Redo Remove Rename Reset Resize Search
Select Set Show Skip Split Step Switch Undo Unlock Watch
Po pierwsze są to podstawowe czasowniki z języka angielskiego. Założę się, że każdy się z nimi zetknął. 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.
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 będzie zapisana nieco inaczej.
Listing 8 Zatrzymanie procesu CalculatorApp
PS C:\Admin> Get-Process CalculatorApp | 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 CalculatorApp, 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.
Potężny i wszechstronny Powershell
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.
Listing 9 Obliczenie pierwiastka drugiego stopnia
PS C:\Admin> [math]::sqrt(144)
12
Listing 10 Obliczenie wartości bezwzględnej liczby
PS C:\Admin> [math]::abs(-1000)
1000
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 jesteś zainteresowany to koniecznie zajrzyj do naszego szkolenia, które jest przygotowane specjalnie dla Ciebie.
Zobacz kursy online
-
(101,40 zł najniższa cena z 30 dni)
84.50 zł169.00 zł (-50%)