PowerShell è una configurazione distribuita, scalabile, eterogenea e framework di automazione, costituito da una shell della riga di comando interattiva e un linguaggio di scripting, per il sistema operativo Windows. È basato su .NET framework e consente agli utenti di automatizzare e semplificare le attività di sistema. Per ulteriori dettagli su PowerShell, fare riferimento al seguente collegamento.
In questo breve tutorial, vediamo come installare PowerShell in Ubuntu 14.04/16.04/18.04 LTS e CentOS 7 edizioni server a 64 bit.
Installa Windows PowerShell Core 6.0 in Linux
PowerShell può essere installato su molte distribuzioni Linux popolari tra cui Arch Linux, Debian, Ubuntu, Fedora, CentOS, SUSE. Qui ho incluso le istruzioni di installazione per Debian, Ubuntu e CentOS.
Su Ubuntu 14.04 LTS:
Scarica e registra la chiave GPG del repository di PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aggiorna l'elenco delle fonti del software:
$ sudo apt-get update
Quindi, installa PowerShell usando il comando:
$ sudo apt-get install -y powershell
Su Ubuntu 16.04 LTS:
Aggiungi chiave GPG del repository di PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aggiorna l'elenco delle fonti del software:
$ sudo apt-get update
Quindi, installa PowerShell usando il comando:
$ sudo apt-get install -y powershell
Su Ubuntu 18.04 LTS:
Registra la chiave GPG del repository di PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aggiorna gli elenchi dei repository e installa PowerShell:
$ sudo apt-get update
$ sudo apt-get install -y powershell
Su Debian 8:
$ sudo apt-get install curl 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-jessie-prod jessie main"> /etc/apt/sources.list.d /microsoft.list'
$ sudo apt-get update
$ sudo apt-get install -y powershell
Su Debian 9:
$ sudo apt-get install 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-stretch-prod stretch main"> /etc/apt/sources.list.d /microsoft.list'
$ sudo apt-get update
$ sudo apt-get install -y powershell
Su CentOS 7:
Aggiungi repository PowerShell come root utente:
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
Installa PowerShell:
# yum install -y powershell
Per altre distribuzioni, fare riferimento alle istruzioni di installazione ufficiali .
Ora abbiamo installato PowerShell. Successivamente, vedremo come utilizzarlo in tempo reale.
Introduzione a PowerShell
Tieni presente che PowerShell per Linux è ancora in fase di sviluppo, quindi potresti riscontrare alcuni bug. In caso di bug, iscriviti al blog della community di PowerShell (Il link è fornito alla fine di questo articolo) e chiedi aiuto.
Dopo aver installato PowerShell, esegui il comando seguente per accedere alla console/sessione di PowerShell.
pwsh
Ecco come appare la console PowerShell nel mio server Ubuntu 18.04 LTS.
PowerShell 6.1.2Copyright (c) Microsoft Corporation. Tutti i diritti riservati.https://aka.ms/pscore6-docsDigita 'help' per ottenere aiuto.PS /home/sk>
PowerShell
Nella sessione di PowerShell, menzioniamo i comandi di PowerShell come cmdlet , e menzioniamo il segno del prompt di PowerShell come PS /> .
Lavorare in PowerShell è quasi simile a BASH. Ho eseguito alcuni comandi Linux in PowerShell. Sembra che quasi tutti i comandi Linux funzionino in PowerShell. Inoltre, PowerShell ha il proprio set di comandi (cmdlet). La funzione TAB (completamento automatico) funziona come in BASH.
Cancella? Bene, facciamo qualche esempio.
Visualizza la versione di PowerShell
Per visualizzare la versione di PowerShell, inserisci:
$PSVersionTable
Output di esempio:
Nome Valore---- -----PSVersion 6.1.2PSEdition CoreGitCommitId 6.1.2OS Linux 4.15.0-45-generic #48-Ubuntu SMP mar gen ...Piattaforma UnixPSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}PSRemotingProtocolVersion 2.3SerializationVersion 1.1.0.1WSManStackVersion 3.0
Come puoi vedere nell'output sopra, la versione di PowerShell è 6.1.2 .
Creazione di file
Per creare un nuovo file, usa 'New-Item' comando come mostrato di seguito.
Nuovo elemento ostechnix.txt
Output di esempio:
Directory:/home/skMode LastWriteTime Lunghezza Nome---- ------------- ------ ---------- 2/11/19 10:28 0 ostechnix.txt
o semplicemente usa ">" come mostrato di seguito:
""> ostechnix.txt
Qui, "" - descrive che il file è vuoto. otechnix.txt è il nome del file.
Per aggiungere alcuni contenuti al file, esegui il seguente comando:
Set-Content ostechnix.txt -Valore "Benvenuto nel blog OSTechNix!"
Oppure
"Benvenuto nel blog OSTechNix!"> ostechnix.txt
Visualizzare il contenuto di un file
Abbiamo creato alcuni file da PowerShell. Come vediamo il contenuto di quei file? È facile.
Usa semplicemente 'Get-Content' comando per visualizzare il contenuto di qualsiasi file.
Ottieni contenuto
Esempio:
Ottieni contenuto ostechnix.txt
Output di esempio:
Benvenuto nel blog OSTechNix!
Eliminazione di file
Per eliminare un file o un elemento, usa 'Remove-Item' comando come mostrato di seguito.
Rimuovi oggetto ostechnix.txt
Verifichiamo se l'elemento è stato davvero eliminato usando il comando:
Ottieni contenuto ostechnix.txt
Dovresti vedere un output come di seguito.
Get-Content:Impossibile trovare il percorso '/home/sk/ostechnix.txt' perché non esiste. Alla riga:1 char:1+ Get-Content ostechnix.txt+ ~~~~~~~~~~ ~~~~~~~~~~~~~~+ CategoryInfo:ObjectNotFound:(/home/sk/otechnix.txt:String) [Get-Content], ItemNotFoundException+ FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
Oppure puoi semplicemente usare "ls" comando per visualizzare se il file esiste o meno.
Visualizzazione dei processi in esecuzione
Per visualizzare l'elenco dei processi in esecuzione, esegui:
Processo di acquisizione
Output di esempio:
NPM(K) PM(M) WS(M) Id CPU SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0,00 0,00 0,02 599 599 Agetty 0 0,00 0,00 0,00 2385 385 Anacron 0 0,00 0,00 0,00 257 0 Ata_SFF 0 0,00 0,00 0,07 556 556 AUDITD 0 0,00 0,00 0,00 0,03 578 578 Avahi-Daemon 0 0.00 0.00 0.00 590 578 Avahi-Daemon 0 0,00 0,00 0,05 2327 327 Bash 0 0,00 0,00 0,00 19 0 Bioset 0 0,00 0,00 0,00 352 0 Bioset 0 0,00 0,00 0,00 360 0 Bioset 0 0,00 0,00 0,35 597 597 CROND 0 0.00 0.00 0.00 0 31 Crypto 0 0.00 0.00 0.11 586 586 dBus-daemon 0 0,00 0,00 0,03 63 0 Deferwq 0 0,00 0,01 0,93 585 585 firewalld 0 0,00 0,00 0,00 30 0 fsnotify_mark 0 0,00 0,00 0,00 43 0 ipv6_addrconf 0 0,00 0,00 0,02 94 0 kauditd 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0,00 0,00 14 0 kdevtmpfs 0 0,00 0,00 0,00 351 0 kdmflush 0 0,00 0,00 0,00 0,00 359 0 kdmflush 0 0,00 0,00 0,00 13 0 khelper 0 0,00 0,00 0,03 0,00 0 0,00 0 0,00 khugepaaged 0 0,00 0,00 0,00 26 0 khungtaskd 0 0.00 0.00 0 0 kintgrityd 0 0.00 0.00 41 0 kmpercorso_rdac d 0 0,00 0,00 0,00 42 0 kpsmousato 0 0,00 0,00 0,00 28 0 ksmd 0 0,00 0,00 0,17 3 0 ksoftirqd/0 0 0,00 0,00 0,02 27 0 kswapd0 0 0,00 0,00 0,00 0,00 0 0,00 0,00 0,00 0,00 39 0 kthrotld 0 0.00 0.00 231313 0 koperaio/0:0 0 0.00 0.00 0.04 2369 0 koperaio/0:0H 0 0.00 0.00 0.00 2440 0 koperaio/0:1 0 0.00 0.00 0.05 2312 0 koperaio/0:2H 0 0.00 0.00 0.28 2376 0 0,00 0,00 0,25 6 0 kworker/u2:0 0 0,00 0,00 0,00 272 0 kworker/u2:2 0 0,00 0,00 0,00 0,01 473 473 lvmetad 0 0,00 0,00 0,02 2036 036 master 0 0,00 0,00 0,00 21 0 md 0 0,00 0,00 0,00 7 0 migrazione /0 0 0.00 0,00 0,00 15 0 Netns 0 0,00 0,00 0,22 653 653 NetworkManager 0 0,00 0,00 0,00 16 0 Perf 0 0,00 0,00 0,01 2071 036 Pickup 0 0,00 0,00 0,05 799 799 Polkitd 0 0,00 0,02 5,02 2401 327 PowerShell 0 0.00 0.00 2072 QMGR 0 0,00 0,00 0,00 8 0 RCU_BH 0 0,00 0,00 0,73 10 0 RCU_SCHED 0 0,00 0,00 0,00 0,00 9 0 RCUOB/0 0 0,00 0,00 0,51 11 0 RCUOS/0 0 0,00 0,00 0,06 582 582 RSYSLOGD 0 0.00 0.00 0.00 0 SCSI _eh_0 0 0.00 0.00 0.00 271 0 scsi_eh_1 0 0.00 0.00 0.00 275 0 scsi_eh_2 0 0.00 0.00 0.00 269 0 scsi_tmf_0 0 0.00 0.00 0.00 273 0 scsi_tmf_1 0 0.00 0.00 0.00 277 0 scsi_tmf_2 0 0.00 0.00 0.03 1174 174 sshd 0 0,00 0,00 0,79 2322 322 sshd 0 0,00 0,00 1,68 1 1 Systemd 0 0,00 0,00 0,24 453 453 Systemd-Journal 0 0,00 0,00 0,04 579 579 Systemd-logind 0 0,00 0,00 0,19 481 481 Systemd-UDEVD 0 0,00 0,00 0,54 1175 175 sintonizzato 0 0,00 0.00 0.00 0 0,02 0 Watchdog/0 0 0.00 0.00 0.01 798 798 wpa_supplicant 0 0.00 0.00 0.00 17 0 riscrittura 0 0.00 0.00 0.00 378 0 xfs_mru_cache 0 0.00 0.00 0.00 379 0 xfs-BUF / dm-1 0 0.00 0.00 0.00 539 0 xfs-BUF / sda1 0 0.00 0.00 0.00 382 0 xfs-cil/dm-1 0 0.00 0.00 0.00 542 0 xfs-cil/sda1 0 0.00 0.00 0.00 381 0 xfs-conv/dm-1 0 0.00 0.00 0.00 541 0 xfs-conv/sda1 0 0.00 0.00 0.0 xfs -data/dm-1 0 0.00 0.00 0.00 540 0 xfs-data/sda1 0 0.00 0.00 0.51 383 0 xfsaild/dm-1 0 0.00 0.00 0.00 543 0 xfsaild/sda1 0 0.00 0.00 0.00 377 0 xfalloc>Il comando precedente visualizzerà l'intero elenco dei processi in esecuzione nel tuo sistema Linux.
Per visualizzare un particolare processo in esecuzione, usa '-Name' opzione con il comando precedente.
Ad esempio, per visualizzare il processo di PowerShell, esegui:
Get-Process -Nome pwshOutput di esempio:
NPM(K) PM(M) WS(M) Id CPU SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0.00 99.32 3.28 2575 398 pwshVisualizzazione degli alias dei comandi
Sei troppo pigro per digitare un intero comando? Basta digitare poche parole e premere il tasto Tab, il comando si completerà automaticamente o verrà visualizzato l'elenco dei comandi suggeriti, proprio come nella shell BASH di Linux.
In alternativa, ci sono alias per alcuni comandi.
Ad esempio, per cancellare lo schermo, devi digitare: Cancella-Host .
Oppure puoi semplicemente digitare l'alias del comando sopra 'cls' o 'clear' per cancellare lo schermo.
Per visualizzare l'elenco degli alias disponibili, esegui:
Ottieni aliasEcco l'elenco completo degli alias disponibili:
CommandType Nome Versione Sorgente ----------- ---- ------- ------ Alias ? -> Where-Object Alias % -> ForEach-Object Alias cd -> Set-Location Alias chdir -> Set-Location Alias clc -> Clear-Content Alias clear -> Clear-Host Alias clhy -> Clear-History Alias cli -> Clear-Item Alias clp -> Clear-ItemProperty Alias cls -> Clear-Host Alias clv -> Clear-Variable Alias cnsn -> Connect-PSSession Alias copy -> Copy-Item Alias cpi -> Copy-Item Alias cvpa -> Converti-Path Alias dbp -> Disable-PSBreakpoint Alias del -> Remove-Item Alias dir -> Get-ChildItem Alias dnsn -> Disconnect-PSSession Alias ebp -> Enable-PSBreakpoint Alias echo -> Write-Output Alias epal -> Export -Alias Alias epcsv -> Esporta-Csv Cancella alias -> Rimuovi-elemento Alias etsn -> Enter-PSSession Alias exsn -> Esci-PSSession Alias fc -> Format-Custom Alias fhx -> Format-Hex 3.1.0.0 Microsoft.PowerShell .Utility Alias fl -> Format-List Alias foreach -> ForEach-Object Alias ft -> Format-Table Alias fw -> Format-Wide Alias gal -> Get-Alias Alias gbp -> Get-PSBreakpoint Alias gc -> Get- Contenuto Alias gci -> Get-Chil dItem Alias gcm -> Get-Command Alias gcs -> Get-PSCallStack Alias gdr -> Get-PSDrive Alias ghy -> Get-History Alias gi -> Get-Item Alias gin -> Get-ComputerInfo 3.1.0.0 Microsoft.PowerShell. Management Alias gjb -> Get-Job Alias gl -> Get-Location Alias gm -> Get-Member Alias gmo -> Get-Module Alias gp -> Get-ItemProperty Alias gps -> Get-Process Alias gpv -> Get-ItemPropertyValue Gruppo alias -> Group-Object Alias gsn -> Get-PSSession Alias gsv -> Get-Service Alias gu -> Get-Unique Alias gv -> Get-Variable Alias h -> Get-History Cronologia alias -> Get-History Alias icm -> Invoke-Command Alias iex -> Invoke-Expression Alias ihy -> Invoke-History Alias ii -> Invoke-Item Alias ipal -> Import-Alias Alias ipcsv -> Import-Csv Alias ipmo -> Import-Module Alias kill -> Stop-Process Alias md -> mkdir Alias measure -> Measure-Object Alias mi -> Move-Item Alias move -> Move-Item Alias mp -> Move-ItemProperty Alias nal -> New-Alias Alias ndr -> New -PSDrive Alias ni -> New-Item Alias nmo -> New-Module Alias nsn -> New-PSSession Alias nv -> New-Variable Alias oh -> Out-Host Alias popd -> Pop-Location Alias pushd -> Push-Location Alias pwd -> Get-Location Alias r -> Invoke-History Alias rbp -> Rimuovi alias PSBreakpoint rcjb -> Ricevi alias lavoro rcsn -> Ricevi alias PSSession rd -> Rimuovi alias elemento rdr -> Rimuovi alias PSDrive ren -> Rinomina alias elemento ri -> Rimuovi alias elemento rjb -> Remove-Job Alias rmo -> Remove-Module Alias rni -> Rename-Item Alias rnp -> Rename-ItemProperty Alias rp -> Remove-ItemProperty Alias rsn -> Remove-PSSession Alias rv -> Remove-Variable Alias rvpa -> Resolve-Path Alias sajb -> Start-Job Alias sal -> Set-Alias Alias saps -> Start-Process Alias sasv -> Start-Service Alias sbp -> Set-PSBreakpoint Alias sc -> Set-Content Alias select -> Seleziona-Oggetto Alias set -> Set-Alias variabili si -> Set-Alias elemento sl -> Set-Alias posizione sls -> Seleziona-String Alias sp -> Set-ItemProperty Alias spjb -> Stop-Job Alias spps -> Stop -Process Alias spsv -> Stop-Service Alias sv -> Tipo di alias Set-Variable -> Get-Content Alias dove -> Where-Object Alias wjb -> Wait-JobPer visualizzare l'alias per un comando particolare, digita:
Get-alias clsOutput di esempio:
CommandType Nome Versione Sorgente ----------- ---- ------- ------ Alias cls -> Clear-HostVisualizzare l'elenco completo dei comandi disponibili
Per visualizzare l'elenco di tutti i comandi PowerShell disponibili, esegui:
Ottieni comandoVisualizzazione della guida
Non sai cosa farà il particolare? Nessun problema. Basta digitare "aiuto" per ottenere aiuto. Non devi cercare su Internet.
Puoi anche usare 'Get-Help' comando insieme a qualsiasi comando di PowerShell. È qualcosa di simile a 'man' comando in Linux.
Ad esempio, per visualizzare la sezione della guida di un comando chiamato "Clear-Host", esegui:
Richiedi aiuto Clear-HostOutput di esempio:
NOME Clear-Host SINOSSI SINTASSI Clear-Host [] DESCRIZIONE LINK CORRELATI https://go.microsoft.com/fwlink/?LinkID=225747 OSSERVAZIONI Per vedere gli esempi, digitare:"get-help Clear-Host -esempi". Per ulteriori informazioni, digitare:"get-help Clear-Host -detailed". Per informazioni tecniche, digitare:"get-help Clear-Host -full". Per la guida in linea, digita:"get-help Clear-Host -online Come vedi sopra, 'Get-Help' visualizza la sezione della guida di uno specifico comando di PowerShell, come il nome del comando, il formato della sintassi, gli alias e le osservazioni, ecc.
Per uscire dalla console di PowerShell, digita:
uscitaSpero che tu abbia un'idea di base su come installare la versione alpha di PowerShell Core in Linux (Ubuntu e CentOS) e sull'utilizzo di base.
Ulteriori letture:
- PowerShell su GitHub
- Introduzione a PowerShell da Channel9 - Tutorial video
- Pagina della community di PowerShell
- Canale YouTube di PowerShell
Lettura correlata:
- Installa il sottosistema Windows per Linux con un singolo comando