GNU/Linux >> Znalost Linux >  >> Linux

Jak využít PowerShell v Linuxu:Průvodce pro začátečníky

Microsoft PowerShell byl tradičně považován za produkt pouze pro Windows, ale už ne. Od PowerShellu v6 jsou nyní všechny možnosti PowerShellu dostupné napříč platformami, přičemž Linux je nejoblíbenější.

V tomto tutoriálu se naučíte, jak začít od začátku instalací PowerShell na Ubuntu (ostatní distribuce Linuxu jsou podobné), jak spouštět příkazy a dokonce instalovat některé moduly.

Začněme!

Předpoklady

Tento tutoriál bude obsahovat různé ukázky. Pokud je chcete sledovat, ujistěte se, že máte následující:

  • Jakákoli podporovaná distribuce Linuxu – Tento výukový program používá Peppermint 10, který je založen na Ubuntu 18.04 (LTS).
  • Účet s přístupem root.

Aktualizace úložiště balíčků

Než přejdete k instalaci PowerShellu v systému Linux, musíte nejprve aktualizovat seznam úložišť správce balíčků apt. Některé distribuce Linuxu používají k instalaci balíčků apt správce balíčků apt; PowerShell je jedním z nich.

Chcete-li zajistit, aby apt při stahování našel balíček PowerShell a všechny závislosti, musíte nejprve aktualizovat seznam úložišť balíčků apt. Chcete-li to provést, spusťte [apt update]() .

sudo apt update

Instalace PowerShellu v systému Linux

Nyní, když jste aktualizovali úložiště balíčků, je čas nainstalovat PowerShell na Linux. Protože tento tutoriál používá distribuci založenou na Ubuntu, máte dva různé způsoby, jak nainstalovat PowerShell; pomocí balíčků snap nebo prostřednictvím sady .NET SDK.

Instalace PowerShellu prostřednictvím Snap Packages

Nejjednodušší způsob, jak nainstalovat PowerShell na Ubuntu, je pomocí snapů. Snaps jsou balíčky, které fungují v několika verzích a distribucích Linuxu.

Chcete-li nainstalovat PowerShell na Linux prostřednictvím balíčku snap, otevřete terminál a spusťte snap install Příkaz Linux s sudo práva používat název balíčku snap powershell .

Ve výchozím nastavení je rozsah balíčků snap omezen z bezpečnostních důvodů. Zadání --classic umožňuje provádět změny ve vašem systému mimo bezpečnostní karanténu.

sudo snap install powershell --classic

Instalace PowerShellu prostřednictvím sady .NET SDK

1. Někdy zjistíte, že balíček PowerShell snap neobsahuje nejnovější verzi PowerShellu. Když k tomu dojde, můžete se vždy rozhodnout pro trasu .NET SDK, která bude vždy aktualizována.

PowerShell je zabalen s .NET Core, takže když nainstalujete .NET SDK, získáte také PowerShell!

Stáhněte a nainstalujte nejnovější dostupnou sadu .NET SDK spuštěním níže uvedeného příkazu pomocí apt správce balíčků. V době psaní tohoto článku je nejnovější dostupný balíček .NET SDK v5.0.8. Nejnovější dostupnou verzi můžete zkontrolovat zde.

sudo apt install dotnet-sdk-5.0

2. Nyní nainstalujte PowerShell pomocí dotnet aplikace pomocí dotnet tool install . dotnet tool příkaz určuje balíček NuGet, jako který je PowerShell zabalen.

Zadáním --global možnost, dotnet nainstaluje balíček PowerShell do ~\.dotnet\tools a zajišťuje, že adresář je v systémové PATH, takže jej můžete spustit odkudkoli.

dotnet tool install --global PowerShell 

Spouštění základních příkazů PowerShellu v systému Linux

Nyní, když máte PowerShell nainstalovaný v Linuxu, co dál? Začněme spuštěním několika základních příkazů. Chcete-li spustit PowerShell, jednoduše spusťte pwsh a přejdete do interaktivní konzoly PowerShell.

Jako multiplatformní skriptovací jazyk podporuje PowerShell v systému Linux všechny běžně známé příkazy z příkazového řádku CMD a Linuxu, jako je sudo apt update . Není třeba otevírat Bash terminál!

Od této chvíle můžete spouštět tisíce vestavěných příkazů PowerShellu. Když už jste u toho, zkontrolujte, jaká verze PowerShellu je nainstalována pomocí $PSVersionTable . Měli byste vidět, že se PSEdition zobrazuje jako Core a Platforma je Unix .

Po dokončení v konzole PowerShell ukončete spuštěním exit příkaz. Tento příkaz vás vrátí zpět do vašeho terminálu Bash.

Omezení PowerShellu v systému Linux

To, že můžete nainstalovat PowerShell a spouštět na něm příkazy, nutně neznamená, že můžete ve Windows dělat vše, co je možné. Koneckonců, Linux jako Open Source je úplně jiný operační systém a některé příkazy nebudou dostupné pro funkce, které nejsou v Linuxu dostupné.

Windows -ne Linux

Například protože Linux nemá registr, neuvidíte žádné jednotky PowerShell. Get-PSDrive cmdlet bude stále k dispozici, ale vrátí pouze připojené svazky úložiště Linux a další standardní disky PS. Níže můžete vidět příklad.

Get-PSDrive | Format-Table -Auto

Na rozdíl od Microsoft Windows nemá Linux ani Common Information Model (CIM) ani Windows Management Instrumentation (WMI). Oba pomáhají při poskytování informací o správě zařízení a aplikací operačnímu systému Windows.

Níže můžete vidět rutinu prostředí Windows PowerShell Get-CimInstance není k dispozici v prostředí PowerShell v systému Linux.

Get-CimInstance -ClassName Win32_BIOS

Ale pokud se pokusíte použít Get-CimInstance v prostředí Windows PowerShell níže uvidíte, že funguje podle očekávání.

Žádné naplánované úlohy

Další nevýhodou PowerShellu v Linuxu je nedostatek naplánovaných úloh. Naplánované úlohy jsou praktickou funkcí v prostředí Window PowerShell, která vám umožňuje spouštět úlohy na pozadí prostřednictvím Plánovače úloh systému Windows.

Chcete-li vytvořit naplánovanou úlohu v prostředí Windows PowerShell, musíte se zaregistrovat úlohu prostřednictvím Register-ScheduledJob cmdlet. Níže uvidíte příklad kopírování některých excelových sešitů, které fungují v prostředí Windows PowerShell. Všimnete si, že Register-ScheduledJob cmdlet nebyl nalezen.

I když nemůžete naplánovat úlohu, stále můžete vyvolat úlohy na pozadí pomocí Start-Job příkaz. Start-Job cmdlet umožňuje spouštět úlohy na pozadí v prostředí PowerShell a provádět úlohu bez interakce s aktuální relací.

Možná byste chtěli vypsat všechny soubory v /var/backups ale udělejte to na pozadí. Můžete vytvořit příkaz, který se má provést v ScriptBlock a vytvořte úlohu s názvem GetAllBackupFiles vyvolat pomocí Start-Job , jak je uvedeno níže.

Start-Job -Name GetAllBackupFiles -ScriptBlock {Get-ChildItem /var/backups -Recurse}

Jakmile se úloha na pozadí spustí, můžete získat výstup z této úlohy pomocí Retrieve-Job cmdlet zadáním -Name které jste uvedli při spuštění.

Retrieve-Job -Name GetAllBackupFiles

Práce s moduly PowerShell v systému Linux

Důležitým konceptem v prostředí Windows PowerShell je modul PowerShell. Moduly PowerShell jsou skupiny příkazů vytvořené jako „balíčky“ vytvořené jak od společnosti Microsoft, tak prostřednictvím komunity PowerShell.

Hledání nainstalovaných modulů

Ve výchozím nastavení PowerShell v Linuxu, stejně jako Windows, instaluje různé moduly. Všechny tyto moduly najdete spuštěním Get-Module příkaz, jak je znázorněno níže. ListAvailable parametr říká Get-Module vrátíte vše moduly na souborovém systému; nejen načtené moduly.

Get-Module -ListAvailable

Níže můžete vidět Pester modul je nainstalován v /root/.local/share/powershell/Modules což je uživatelské umístění pro moduly PowerShell. Jak nainstalovat moduly, se dozvíte v nadcházející sekci.

Každé umístění pro instalaci modulů můžete zobrazit v PSModulePath proměnná prostředí, jak je uvedeno níže. Od hodnoty $env:PSModulePath je jeden řetězec, výukový program používá split operátor pro rozdělení řetězce na dvojtečky (nikoli středníky jako Windows), aby se každá cesta zobrazila na jiném řádku.

$env:PSModulePath -split ':'

Instalace modulů PowerShell v systému Linux

Přestože PowerShell v systému Linux přichází s různými moduly již nainstalovanými, je pravděpodobné, že budete potřebovat více funkcí. Když k tomu dojde, můžete využít galerii PowerShell. Galerie PowerShell je úložiště tisíců modulů, které fungují ve Windows i Linuxu.

Pomocí Install-Module cmdlet, můžete nainstalovat moduly na Linux stejně jako na Windows. Nejprve byste však měli najít modul, který hledáte, pomocí Find-Module .

Řekněme, že byste chtěli spustit nějaké testy Pesters pomocí populárního testovacího rámce Pester. Pester se dodává zabalený v modulu. Zkontrolujte, zda je modul Pester dostupný v galerii PowerShell pomocí Find-Module cmdlet.

Find-Module Pester

Níže můžete vidět Find-Module našel dostupný modul Pester.

Jakmile ověříte, že je modul Pester k dispozici, nainstalujte modul pomocí Install-Module rutina určující Name modulu.

Install-Module -Name Pester

Když spustíte Install-Module , PowerShell vás vyzve k nedůvěryhodnému úložišti, protože úložiště je označeno jako nedůvěryhodné. Pro testování toto varování není důvod k obavám, takže zadejte A pro potvrzení.

Jakmile je modul nainstalován, spusťte nyní Get-InstalledModule cmdlet a uvidíte, že Pester byl nainstalován a jeho příkazy jsou nyní k dispozici.

Uvidíte to také pomocí Get-Command cmdlet, můžete také najít všechny příkazy uvnitř Pester modulu, jak je uvedeno níže.

Get-Command -Module Pester

Spouštění skriptů PowerShell z Bash

Abychom tento tutoriál uzavřeli, skončeme spuštěním skriptů PowerShell z Bash. V průběhu tohoto kurzu jste interaktivně spouštěli příkazy PowerShellu v konzole PowerShellu. Pokud máte skript PowerShell, který potřebujete spustit, není nutné přecházet do konzoly PowerShell. Místo toho můžete skript spustit přímo z Bash.

Chcete-li předvést spuštění skriptu PowerShell z Bash, otevřete svůj oblíbený textový editor Linux a vložte následující příkaz a uložte soubor jako DrivesInformation.ps1 . Tento skript jednoduše vyjmenuje všechny jednotky PS.

Get-PSDrive

Ve vašem terminálu Bash namísto spuštění pwsh , stiskněte Enter a poté spusťte skript v konzole PowerShell, vyvolejte skript přímo z Bash. Chcete-li to provést, spusťte pwsh znovu, ale tentokrát zadejte skript PowerShell, který jste právě vytvořili, jak je znázorněno níže.

Uvidíte, že obdržíte stejný výstup, jaký byste obdrželi v interaktivní relaci PowerShell přímo ve vašem terminálu Bash.

pwsh /home/tex/DrivesInformation.ps1

Závěr

Nyní byste měli mít dobrý začátek se spuštěním PowerShellu v Linuxu! Nyní je na vás, abyste se začali učit více o PowerShellu a automatizaci všeho, co můžete!


Linux
  1. Jak nainstalovat Discord na Linux:Průvodce krok za krokem

  2. Jak nainstalovat Slack na Linux:Snadno sledovatelný průvodce

  3. Průvodce pro začátečníky firewallem v Linuxu

  1. Průvodce pro začátečníky oprávněními pro Linux

  2. Jak nainstalovat RHEL 8:Kompletní průvodce krok za krokem

  3. Jak nainstalovat Void Linux:Kompletní průvodce krok za krokem

  1. Jak nainstalovat Windows PowerShell Core 6.0 v Linuxu

  2. Příručka pro začátečníky k řešení problémů se sítí v Linuxu

  3. Kompletní průvodce instalací OxygenOS na OnePlus One v Linuxu