GNU/Linux >> Linux Esercitazione >  >> Linux

Ottenere il vantaggio di PowerShell su Linux:una guida per principianti

Microsoft PowerShell è stato tradizionalmente considerato un prodotto solo per Windows, ma non più. A partire da PowerShell v6, le funzionalità complete di PowerShell sono ora disponibili multipiattaforma con Linux come il più popolare.

In questo tutorial imparerai come iniziare da zero installando PowerShell su Ubuntu (altre distribuzioni Linux sono simili), come eseguire comandi e persino installare alcuni moduli.

Iniziamo!

Prerequisiti

Questo tutorial conterrà varie demo. Se desideri continuare, assicurati di avere quanto segue:

  • Qualsiasi distribuzione Linux supportata:questo tutorial utilizza Peppermint 10, basato su Ubuntu 18.04 (LTS).
  • Un account con accesso root.

Aggiornamento del repository dei pacchetti

Prima di passare all'installazione di PowerShell su Linux, devi prima aggiornare l'elenco dei repository di apt Package Manager. Alcune distribuzioni di Linux usano il gestore di pacchetti apt per installare i pacchetti apt; PowerShell è uno di questi.

Per garantire che apt possa trovare il pacchetto PowerShell e qualsiasi dipendenza durante il download, devi prima aggiornare l'elenco dei repository di pacchetti di apt. Per farlo, esegui [apt update]() .

sudo apt update

Installazione di PowerShell su Linux

Ora che hai aggiornato i repository dei pacchetti, è il momento di installare PowerShell su Linux. Poiché questo tutorial utilizza una distribuzione basata su Ubuntu, hai due modi diversi per installare PowerShell; utilizzando pacchetti snap o tramite .NET SDK.

Installazione di PowerShell tramite Snap Packages

Il modo più semplice per installare PowerShell su Ubuntu è tramite snap. Gli snap sono pacchetti che funzionano su diverse versioni e distribuzioni di Linux.

Per installare PowerShell su Linux tramite un pacchetto snap, apri un terminale ed esegui snap install Comando Linux con sudo diritti di utilizzo del nome del pacchetto snap di powershell .

Per impostazione predefinita, i pacchetti snap hanno un ambito limitato per motivi di sicurezza. Specificando il --classic consente di apportare modifiche al sistema al di fuori della sandbox di sicurezza.

sudo snap install powershell --classic

Installazione di PowerShell tramite .NET SDK

1. A volte scoprirai che il pacchetto snap di PowerShell non contiene l'ultima versione di PowerShell. Quando ciò accade, puoi sempre optare per il percorso .NET SDK che verrà sempre aggiornato.

PowerShell è incluso in .NET Core, quindi quando installi .NET SDK, ottieni anche PowerShell!

Scarica e installa l'ultimo .NET SDK disponibile eseguendo il comando seguente utilizzando apt gestore di pacchetti. Al momento della stesura di questo documento, l'ultimo pacchetto .NET SDK disponibile è v5.0.8. Puoi controllare l'ultima versione disponibile qui.

sudo apt install dotnet-sdk-5.0

2. Ora installa PowerShell tramite dotnet applicazione utilizzando dotnet tool install . Il dotnet tool comando specifica un pacchetto NuGet in cui è contenuto PowerShell.

Specificando il --global opzione, dotnet installa il pacchetto PowerShell in ~\.dotnet\tools e assicura che la directory sia nel PATH di sistema in modo da poterla eseguire da qualsiasi luogo.

dotnet tool install --global PowerShell 

Esecuzione dei comandi di base di PowerShell su Linux

Ora che hai PowerShell installato su Linux, cosa succede dopo? Iniziamo eseguendo alcuni comandi di base. Per avviare PowerShell, esegui semplicemente pwsh e verrai inserito nella console interattiva di PowerShell.

Essendo un linguaggio di scripting multipiattaforma, PowerShell su Linux supporta tutti i comandi comunemente conosciuti da CMD e dalla shell della riga di comando di Linux come sudo apt update . Non c'è bisogno di aprire un terminale Bash!

Da qui in poi puoi eseguire migliaia di comandi PowerShell integrati. Già che ci sei, controlla quale versione di PowerShell è installata utilizzando $PSVersionTable . Dovresti vedere che PSEdition viene visualizzato come Core e Piattaforma è Unix .

Una volta terminato nella console di PowerShell, esci eseguendo exit comando. Questo comando ti riporterà al tuo terminale Bash.

PowerShell su Linux Limitazioni

Solo perché puoi installare PowerShell ed eseguire comandi su di esso non significa necessariamente che puoi fare tutto il possibile su Windows. Dopotutto, essendo Linux Open Source, è un sistema operativo completamente diverso e alcuni comandi non saranno disponibili per funzionalità non disponibili in Linux.

Windows -ne Linux

Ad esempio, poiché Linux non ha un registro, non vedrai alcuna unità PowerShell. Il Get-PSDrive cmdlet sarà ancora disponibile ma restituirà solo i volumi di archiviazione Linux montati e altre unità PS standard. Puoi vedere un esempio qui sotto.

Get-PSDrive | Format-Table -Auto

A differenza di Microsoft Windows, Linux non dispone né di Common Information Model (CIM) né di Strumentazione gestione Windows (WMI). Entrambi aiutano a fornire informazioni sulla gestione di dispositivi e applicazioni al sistema operativo Windows.

Di seguito puoi vedere che il cmdlet di Windows PowerShell Get-CimInstance non è disponibile in PowerShell su Linux.

Get-CimInstance -ClassName Win32_BIOS

Ma se provi a usare Get-CimInstance in Windows PowerShell, vedrai di seguito che funziona come previsto.

Nessun lavoro pianificato

Un altro svantaggio di PowerShell su Linux è la mancanza di processi pianificati. I lavori pianificati sono una funzione utile in Windows PowerShell che ti consente di eseguire attività in background tramite l'Utilità di pianificazione di Windows.

Per creare un processo pianificato in Windows PowerShell è necessario registrarsi il lavoro tramite il Register-ScheduledJob cmdlet. Di seguito vedrai un esempio di copia di alcune cartelle di lavoro di Excel che funzionano in Windows PowerShell. Noterai che il Register-ScheduledJob cmdlet non è stato trovato.

Anche se non puoi pianificare un lavoro, puoi comunque richiamare lavori in background utilizzando il Start-Job comando. Il Start-Job cmdlet consente di eseguire processi in background in PowerShell per eseguire un'attività senza alcuna interazione con la sessione corrente.

Forse ti piacerebbe elencare tutti i file in /var/backups ma fallo in background. Puoi creare il comando da eseguire in un ScriptBlock e crea un lavoro chiamato GetAllBackupFiles invocare con Start-Job , come mostrato di seguito.

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

Una volta avviato il lavoro in background, puoi ricevere l'output da quel lavoro utilizzando il Retrieve-Job cmdlet specificando il -Name che hai fornito all'avvio.

Retrieve-Job -Name GetAllBackupFiles

Lavorare con i moduli PowerShell su Linux

Un concetto importante in Windows PowerShell è il modulo PowerShell. I moduli PowerShell sono gruppi di comandi creati come "pacchetti" creati sia da Microsoft che tramite la community di PowerShell.

Trovare moduli installati

Per impostazione predefinita, PowerShell su Linux, come Windows, installa vari moduli. Trova tutti questi moduli eseguendo Get-Module comando, come mostrato di seguito. Il ListAvailable il parametro dice a Get-Module per restituire tutti moduli sul filesystem; non solo moduli caricati.

Get-Module -ListAvailable

Di seguito puoi vedere che il Pester il modulo è installato in /root/.local/share/powershell/Modules che è la posizione dell'utente per i moduli di PowerShell. Imparerai come installare i moduli in una prossima sezione.

Puoi vedere ogni posizione in cui installare i moduli guardando il PSModulePath variabile di ambiente, come mostrato di seguito. Dal valore di $env:PSModulePath è una stringa, il tutorial utilizza split operatore per dividere la stringa in due punti (non punto e virgola come Windows) per visualizzare ciascun percorso su una riga diversa.

$env:PSModulePath -split ':'

Installazione dei moduli PowerShell su Linux

Anche se PowerShell su Linux viene fornito con vari moduli già installati, è probabile che avrai bisogno di più funzionalità. Quando ciò accade, puoi sfruttare la Galleria di PowerShell. La Galleria PowerShell è un repository di migliaia di moduli che funzionano sia in Windows che in Linux.

Usando il Install-Module cmdlet, puoi installare moduli su Linux proprio come su Windows. Ma prima dovresti trovare il modulo che stai cercando usando Find-Module .

Diciamo che desideri eseguire alcuni test Pesters utilizzando il popolare framework di test Pester. Pester viene fornito confezionato in un modulo. Verifica se il modulo Pester è disponibile nella Galleria PowerShell utilizzando il Find-Module cmdlet.

Find-Module Pester

Puoi vedere sotto quel Find-Module trovato il modulo Pester disponibile.

Dopo aver verificato la disponibilità del modulo Pester, ora installa il modulo utilizzando il Install-Module cmdlet che specifica il Name del modulo.

Install-Module -Name Pester

Quando esegui Install-Module , PowerShell ti chiederà di un repository non attendibile perché il repository è contrassegnato come non attendibile. Per il test, questo avviso non è nulla di cui preoccuparsi, quindi digita A per confermare.

Una volta che il modulo è stato installato, ora esegui il Get-InstalledModule cmdlet e vedrai che Pester è stato installato e i suoi comandi sono ora disponibili.

Lo vedrai anche usando il Get-Command cmdlet, puoi anche trovare tutti i comandi all'interno di Pester modulo, come mostrato di seguito.

Get-Command -Module Pester

Esecuzione di script di PowerShell da Bash

Per concludere questo tutorial, finiamo con l'esecuzione di script PowerShell da Bash. Durante questo tutorial, hai eseguito in modo interattivo i comandi di PowerShell all'interno di una console di PowerShell. Se hai uno script di PowerShell che devi eseguire, non è necessario passare alla console di PowerShell. Invece, puoi eseguire lo script direttamente da Bash.

Per dimostrare l'esecuzione di uno script PowerShell da Bash, apri il tuo editor di testo Linux preferito e incolla il comando seguente e salva il file come DrivesInformation.ps1 . Questo script enumera semplicemente tutte le unità PS.

Get-PSDrive

Nel tuo terminale Bash, invece di eseguire pwsh , premendo Invio e quindi eseguendo lo script all'interno della console di PowerShell, richiama lo script direttamente da Bash. Per fare ciò, esegui pwsh di nuovo, ma questa volta specifica lo script di PowerShell che hai appena creato, come mostrato di seguito.

Vedrai che riceverai lo stesso output che avresti all'interno della sessione interattiva di PowerShell direttamente nel tuo terminale Bash.

pwsh /home/tex/DrivesInformation.ps1

Conclusione

Ora dovresti iniziare bene a eseguire PowerShell in Linux! Ora tocca a te iniziare a saperne di più su PowerShell e automatizzare tutto ciò che puoi!


Linux
  1. Come installare RHEL 8:una guida passo passo completa

  2. Come installare Discord su Linux:una guida passo passo

  3. Come installare Slack su Linux:una guida facile da seguire

  4. Come installare Void Linux:una guida passo passo completa

  5. Una guida per principianti al firewalld in Linux

50 utili comandi Raspberry Pi:una guida per principianti

Come installare e utilizzare Curl su distribuzioni Linux:una guida per principianti

Guida per principianti ai Syslog in Linux

Una guida completa per installare Tomcat su Linux

Installa Golang su Linux – Guida passo passo

Come installare e utilizzare FFmpeg su distribuzioni Linux | Guida per principianti