Primi passi con PowerShell in Linux [Guida per principianti]

Dopo che Microsoft si è innamorata di Linux (ciò che è diventato popolarmente noto come “Microsoft Loves Linux”), PowerShell, originariamente un componente esclusivo di Windows, è stato open-sourciato e reso multipiattaforma il 18 agosto 2016, disponibile su Linux e Mac OS.

PowerShell è un sistema di automazione e gestione della configurazione sviluppato da Microsoft. È composto da un interprete di linguaggio di comando (shell) e da un linguaggio di scripting costruito sul .NET Framework.

Offre accesso completo a COM (Component Object Model) e WMI (Windows Management Instrumentation), consentendo così ai sistemisti di svolgere compiti amministrativi sia su sistemi Windows locali che remoti, nonché su WS-Management e CIM (Common Information Model), permettendo la gestione di sistemi Linux remoti e dispositivi di rete.

In questo framework, i compiti amministrativi sono essenzialmente eseguiti da particolari classi .NET chiamate cmdlets (pronunciate command-lets).

Simile agli script shell in Linux, gli utenti possono creare script o eseguibili memorizzando gruppi di cmdlets in file seguendo determinate regole. Questi script possono essere utilizzati come strumenti o utilità da riga di comando indipendenti.

Installare PowerShell nei sistemi Linux

Per installare PowerShell in Linux, utilizzeremo il repository ufficiale di Microsoft che ci consentirà di installare attraverso gli strumenti di gestione dei pacchetti Linux più popolari come apt-get o apt e yum o dnf.

Installare PowerShell su Ubuntu

Prima importare le chiavi pubbliche del repository GPG, quindi registrare il Microsoft Ubuntu repository nella lista delle fonti del pacchetto APT per installare Powershell:

$ sudo apt-get update
$ sudo apt-get install -y wget apt-transport-https software-properties-common
$ wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt-get update
$ sudo apt-get install -y powershell

Installare PowerShell su Debian 11

PowerShell per le versioni della distribuzione Debian è pubblicato nei repository dei pacchetti per facilitare l’installazione e gli aggiornamenti.

$ sudo apt update
$ sudo apt install -y curl gnupg apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod bullseye main" > /etc/apt/sources.list.d/microsoft.list'
$ sudo apt update
$ sudo apt install -y powershell

Installare PowerShell su Debian 10

$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt-get update
$ sudo apt-get install -y powershell

Installare PowerShell su sistemi RHEL

PowerShell per distribuzioni basate su RHEL come CentOS Stream, Rocky, e AlmaLinux sono pubblicati nei repository ufficiali Microsoft per un facile installazione e aggiornamenti.

---------- On RHEL, CentOS, Rocky & AlmaLinux 9 ---------- 
$ curl https://packages.microsoft.com/config/rhel/9.0/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

---------- On RHEL, CentOS, Rocky & AlmaLinux 8 ----------
$ curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

---------- On RHEL/CentOS 7 ----------
$ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

Come utilizzare Powershell in Linux

In questa sezione, faremo una breve introduzione a Powershell; dove vedremo come avviare powershell, eseguire alcuni comandi di base e vedere come lavorare con file, directory e processi. Quindi più avanti ci immergiamo in come elencare tutti i comandi disponibili e mostrare aiuto ai comandi e alias.

Per avviare Powershell, digitare:

$ pwsh

PowerShell 7.3.3
PS /root> 

È possibile verificare la versione di Powershell con il comando seguente:

PS /root> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.3
PSEdition                      Core
GitCommitId                    7.3.3
OS                             Linux 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30)
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Esecuzione di alcuni comandi di base di Powershell su Linux.

get-date          [# Display current date]
get-uptime        [# Display server uptime]
get-location      [# Display present working directory]
Running PowerShell Commands

Lavorare con File e Directory in Powershell

1. Creare un nuovo file vuoto utilizzando i due metodi seguenti:

new-item  tecmint.tex
OR
“”>tecmint.tex

Quindi aggiungi contenuto ad esso e visualizza il contenuto del file.

set-content tecmint.tex -value "TecMint Linux How Tos Guides"
get-content tecmint.tex
Create New File in Powershell

2. Elimina un file in powershell.

remove-item tecmint.tex
get-content tecmint.tex
Delete File in Powershell

3. Crea una nuova directory.

mkdir  tecmint-files
cd  tecmint-files
“”>domains.list
ls
Create a Directory in Powershell

4. Per eseguire una lunga lista, che mostra i dettagli di un file/directory incluso il modo (tipo di file) e l’ultima modifica del tempo.

dir
Directory Long Listing in Powershell

5. Visualizza tutti i processi in esecuzione sul tuo sistema:

get-process
View Running Processes in Powershell

6. Per visualizzare i dettagli di un singolo/gruppo di processi in esecuzione con un nome dato, fornisci il nome del processo come argomento al comando precedente come segue:

get-process apache2
View Specific Process in Powershell

Significato delle unità nell’output di cui sopra:

  • NPM(K) – la quantità di memoria non pagabile che il processo sta utilizzando, in kilobytes.
  • PM(K) – la quantità di memoria pagabile che il processo sta utilizzando, in kilobytes.
  • WS(K) – la dimensione del set di lavoro del processo, in kilobytes. Il set di lavoro consiste nei pagine di memoria che sono state recentemente referenziate dal processo.
  • CPU(s) – la quantità di tempo processore che il processo ha utilizzato su tutti i processori, in secondi.
  • ID – ID del processo (PID).
  • ProcessName – il nome del processo.

7. Per saperne di più, ottieni un elenco di tutti i comandi di Powershell per diversi compiti:

get-command
List Powershell Commands

8. Per imparare come utilizzare un comando, visualizza la sua pagina di aiuto (simile alla pagina man in Unix/Linux); in questo esempio, puoi ottenere aiuto per il comando Describe:

get-help Describe
Powershell Help Manual

9. per visualizzare tutti i comandi alias disponibili, digita:

get-alias
List Powershell Command Aliases

10. Infine, per visualizzare la cronologia dei comandi (elenco dei comandi eseguiti in precedenza), usa il seguente comando:

history
List Powershell Commands History

Questo è tutto! Per ora, in questo articolo, ti abbiamo mostrato come installare Powershell di Microsoft in Linux. Secondo me, Powershell ha ancora molta strada da fare rispetto alle tradizionali shell Unix/Linux che offrono caratteristiche migliori, più interessanti e produttive per operare una macchina dalla riga di comando e, soprattutto, per scopi di programmazione (scripting).

Visita il repository di Powershell su Github: https://github.com/PowerShell/PowerShell

Tuttavia, puoi provarlo e condividere le tue opinioni con noi nei commenti.

Source:
https://www.tecmint.com/install-powershell-in-linux/