====== PowerShell ====== **PowerShell** byl původně vyvinut jako součást systému Windows (Windows PowerShell), ale dnes je jako **PowerShell Core** dostupný i pro Linux a macOS. Jeho unikátnost spočívá v tom, že s daty nemanipuluje jako s prostým textem, ale jako s bohatými datovými strukturami – objekty. ---- ====== Hlavní rozdíl: Text vs. Objekty ====== V tradičních shellech (např. CMD nebo Bash) je výstupem příkazu text. Pokud chcete z výpisu získat jen velikost souboru, musíte text složitě "parsovat" (řezat a hledat řetězce). V PowerShellu dostanete **objekt**. Ten má své vlastnosti (vlastnosti) a metody (činnosti). * *Příklad:* Příkaz ''Get-Service'' nevrátí jen seznam jmen, ale objekty typu "Služba", u kterých se můžete snadno zeptat na stav: ''(Get-Service).Status''. ---- ====== Klíčové koncepty ====== ===== 1. Cmdlety (Commandlets) ===== Základní příkazy v PowerShellu se nazývají **cmdlety**. Mají sjednocenou strukturu **Sloveso-Podstatné jméno**, což je dělá velmi intuitivními: * ''Get-Process'' (Získej běžící procesy) * ''Stop-Service'' (Zastav službu) * ''New-Item'' (Vytvoř novou položku/soubor) ===== 2. Roury (Pipeline) ===== Stejně jako v jiných shellech, i zde lze příkazy řetězit pomocí symbolu roury ''|''. Protože se však předávají objekty, je to mnohem mocnější: ''Get-Service | Where-Object Status -eq "Running" | Stop-Service'' (Najdi všechny služby, které běží, a všechny je zastav.) ---- ====== Skriptování a automatizace ====== PowerShell používá skripty s příponou **.ps1**. Díky přístupu k celému .NET frameworku a systémovým rozhraním (WMI, COM) je v něm možné automatizovat téměř cokoliv: * Správa uživatelů v Active Directory. * Hromadná konfigurace cloudových služeb (Azure, AWS). * Automatické zálohování a manipulace se soubory. ---- ====== Srovnání verzí ====== ^ Funkce ^ Windows PowerShell (5.1 a starší) ^ PowerShell (7+ / Core) ^ | **Platforma** | Pouze Windows | Windows, Linux, macOS | | **Základ** | .NET Framework | .NET (Open Source) | | **Výkon** | Standardní | Výrazně vyšší | ---- ====== Proč se PowerShell učit? ====== * **Univerzálnost:** Dnes je to standard pro správu nejen Windows serverů, ale i cloudových infrastruktur a Microsoft 365. * **Srozumitelnost:** Díky logickému pojmenovávání příkazů se v něm začátečník orientuje lépe než v kryptických zkratkách Linuxu. * **Pomocník (Help):** PowerShell má propracovaný systém nápovědy. Příkaz ''Get-Help'' následovaný názvem cmdletu vám podrobně vysvětlí, jak se daný nástroj používá. ---- //Související pojmy: CLI, Shell, .NET, Bash, Skriptování, Operační systém, Azure.//