GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie Windows PowerShell Core 6.0 unter Linux

PowerShell ist ein verteiltes, skalierbares, heterogenes Konfigurations- und Automatisierungs-Framework, das aus einer interaktiven Befehlszeilen-Shell und einer Skriptsprache für das Windows-Betriebssystem besteht. Es basiert auf .NET Framework, und es ermöglicht den Benutzern, die Systemaufgaben zu automatisieren und zu vereinfachen. Weitere Einzelheiten zu PowerShell finden Sie unter folgendem Link.

Lassen Sie uns in diesem kurzen Tutorial sehen, wie man PowerShell in Ubuntu 14.04/16.04/18.04 LTS und CentOS 7 64-Bit-Server-Editionen installiert.

Installieren Sie Windows PowerShell Core 6.0 unter Linux

PowerShell kann auf vielen gängigen Linux-Distributionen installiert werden, darunter Arch Linux, Debian, Ubuntu, Fedora, CentOS, SUSE. Hier habe ich Installationsanweisungen für Debian, Ubuntu und CentOS beigefügt.

Unter Ubuntu 14.04 LTS:

PowerShell-Repository-GPG-Schlüssel herunterladen und registrieren:

$ wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

Aktualisieren Sie die Liste der Softwarequellen:

$ sudo apt-get update

Installieren Sie dann PowerShell mit dem Befehl:

$ sudo apt-get install -y powershell

Unter Ubuntu 16.04 LTS:

PowerShell-Repository-GPG-Schlüssel hinzufügen:

$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

Aktualisieren Sie die Liste der Softwarequellen:

$ sudo apt-get update

Installieren Sie dann PowerShell mit dem Befehl:

$ sudo apt-get install -y powershell

Unter Ubuntu 18.04 LTS:

Registrieren Sie den GPG-Schlüssel des PowerShell-Repositorys:

$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

Repository-Listen aktualisieren und PowerShell installieren:

$ sudo apt-get update
$ sudo apt-get install -y powershell

Auf 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

Auf 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

Unter CentOS 7:

PowerShell-Repository als root hinzufügen Benutzer:

# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

Installieren Sie PowerShell:

# yum install -y powershell

Für andere Distributionen lesen Sie bitte die offizielle Installationsanleitung .

Wir haben jetzt PowerShell installiert. Als nächstes werden wir sehen, wie man es in Echtzeit verwendet.

Erste Schritte mit PowerShell

Bitte beachten Sie, dass sich PowerShell für Linux noch in der Entwicklungsphase befindet, sodass Sie auf einige Fehler stoßen. Treten Sie bei Fehlern dem PowerShell-Community-Blog bei (Der Link befindet sich am Ende dieses Artikels) und erhalten Sie Hilfe.

Führen Sie nach der Installation von PowerShell den folgenden Befehl aus, um die PowerShell-Konsole/-Sitzung aufzurufen.

pwsh

So sieht die PowerShell-Konsole auf meinem Ubuntu 18.04 LTS-Server aus.

PowerShell 6.1.2Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten. https://aka.ms/pscore6-docs Geben Sie „Hilfe“ ein, um Hilfe zu erhalten. PS /home/sk>

PowerShell

In der PowerShell-Sitzung erwähnen wir die Powershell-Befehle als Cmdlets , und wir erwähnen das PowerShell-Eingabeaufforderungszeichen als PS /> .

Das Arbeiten in PowerShell ist fast ähnlich wie in BASH. Ich habe einige Linux-Befehle in PowerShell ausgeführt. Es scheint, dass fast alle Linux-Befehle in der PowerShell funktionieren. Außerdem verfügt PowerShell über einen eigenen Befehlssatz (Cmdlets). Die TAB-Funktion (Autovervollständigung) funktioniert wie in BASH.

Löschen? Nun, lassen Sie uns ein paar Beispiele nennen.

PowerShell-Version anzeigen

Um die Version der PowerShell anzuzeigen, geben Sie Folgendes ein:

$PSVersionTable

Beispielausgabe:

Name Wert---- -----PSVersion 6.1.2PSEdition CoreGitCommitId 6.1.2OS Linux 4.15.0-45-generic #48-Ubuntu SMP Di Jan ...Platform UnixPSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}PSRemotingProtocolVersion 2.3SerializationVersion 1.1.0.1WSManStackVersion 3.0

Wie Sie in der obigen Ausgabe sehen, ist die Version der PowerShell 6.1.2 .

Dateien erstellen

Um eine neue Datei zu erstellen, verwenden Sie 'New-Item' Befehl wie unten gezeigt.

New-Item ostechnix.txt

Beispielausgabe:

 Verzeichnis:/home/skMode LastWriteTime Länge Name---- ------------- ------ ---------- 11.02.19 10:28 Uhr 0 ostechnix.txt

oder verwenden Sie einfach ">" wie unten gezeigt:

""> ostechnix.txt

Hier, "" - beschreibt, dass die Datei leer ist. ostechnix.txt ist der Dateiname.

Um einige Inhalte in der Datei anzuhängen, führen Sie den folgenden Befehl aus:

Set-Content ostechnix.txt -Value "Willkommen im OSTechNix-Blog!"

Oder

"Willkommen beim OSTechNix-Blog!"> ostechnix.txt
Anzeigen des Inhalts einer Datei

Wir haben einige Dateien aus der PowerShell erstellt. Wie sehen wir den Inhalt dieser Dateien? Ganz einfach.

Verwenden Sie einfach 'Get-Content' Befehl, um den Inhalt einer beliebigen Datei anzuzeigen.

Get-Content  

Beispiel:

Get-Content ostechnix.txt

Beispielausgabe:

Willkommen beim OSTechNix-Blog!
Dateien löschen

Um eine Datei oder ein Element zu löschen, verwenden Sie 'Remove-Item' Befehl wie unten gezeigt.

Remove-Item ostechnix.txt

Lassen Sie uns mit dem Befehl überprüfen, ob das Element wirklich gelöscht wurde:

Get-Content ostechnix.txt

Sie sollten eine Ausgabe wie unten sehen.

Get-Content :Pfad '/home/sk/ostechnix.txt' kann nicht gefunden werden, da er nicht existiert.In Zeile:1 Zeichen:1+ Get-Content ostechnix.txt+ ~~~~~~~~~~ ~~~~~~~~~~~~~~~+ CategoryInfo :ObjectNotFound:(/home/sk/ostechnix.txt:String) [Get-Content], ItemNotFoundException+ FullyQualifiedErrorId :PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand 

Oder Sie können einfach das "ls" verwenden Befehl zum Anzeigen, ob die Datei existiert oder nicht.

Anzeigen der laufenden Prozesse

Um die Liste der laufenden Prozesse anzuzeigen, führen Sie einfach Folgendes aus:

Get-Process

Beispielausgabe:

 NPM(K) PM(M) WS(M) CPU(s) ID 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,07 556 556 AUDITD 0 0,00 0,00 0,03 578 578 AVAHI-DAMONE 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 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 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 0 0,00 0,00 0,35 597 597 Crond 0 0,00 0,00 0,00 31 0 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 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 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 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 20 0 kblockd 0 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 359 0 kdmflush 0 0,00 0,00 0,00 13 0 khelper 0 0,00 0,00 0,03 29 0 khugepaged 0 0,00 0,00 0,00 26 0 khungtaskd 0 0,00 0,00 0,00 18 0 kintegrityd 0 0,00 0,00 0.00 41 0 kmpath_rdac D 0 0,00 0,00 0,00 42 0 kpsmoused 0 0,00 0,00 0,00 28 0 ksmd 0 0,00 0,00 0,17 3 0 ksoftirqd/0 0,00 0,00 0,02 27 0 kswapd0 0 0,00 0,00 0,00 2 0 kthreadd 0 0,00 0,00 0,00 39 0 Kthrotld 0 0,00 0,00 0,01 23131333133313331333333333333333333333333333333333333333333333333333333333333333333333333333333133333333333131313131313133 0 kArbeiter/0:0 0 0,00 0,00 0,04 2369 0 kArbeiter/0:0H 0 0,00 0,00 0,00 2440 0 kArbeiter/0:1 0 0,00 0,00 0,05 2312 0 kArbeiter/0:2H 0 0,00 0,00 0,28 23/76 0 0,00 0,00 0,25 6 0 KWWER/U2:0 0 0,00 0,00 0,00 272 0 KWERKER/U2:2 0 0,00 0,00 0,01 473 473 LVMetad 0 0,00 0,00 0,02 2036 036 Master 0 0,00 0,00 21 0 md 0 0,00 0,00 0,00 7 0 Migration 0 Migration 036 Master 0 0,00 0,00 21 0 md 0 0,00 0,00 0,00 7 0 Migration 0 Migration 036 0,00 0,00 21 0 Md 0 0,00 0,00 0,00 7 0 Migration 036 Migration 0 0,00 0,00 21 0 md 0 0,00 0,00 0,00 7 0 Migration 0 Migration 036 0,00 0,00 21 0 md 0 0,00 0,00 0,00 7 0 Migration 036 / 0 0 0,00 0,00 0,00 15 0 netns 0 0,00 0,00 0,22 653 653 Network 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 0 0,00 0,00 0,00 2072 036 powershell qmgr 0 0,00 0,00 0,00 8 0 rcu_bh 0 0,00 0,00 0,73 10 0 RCU_Sch 0 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 267 0 SCSI 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 0 abgestimmt 0,00 0,00 0,02 12 0 watchdog / 0 0 0,00 0,00 0,01 798 798 WPA_Supplicant 0 0,00 0,00 0,00 17 0 Schreibback 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 3829292 xfs-buf/ 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,0 3 0,0 -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 

Der obige Befehl zeigt die gesamte Liste der laufenden Prozesse in Ihrem Linux-System an.

Um einen bestimmten laufenden Prozess anzuzeigen, verwenden Sie '-Name' Option mit dem obigen Befehl.

Um beispielsweise den Powershell-Prozess anzuzeigen, führen Sie Folgendes aus:

Get-Process -Name pwsh

Beispielausgabe:

 NPM(K) PM(M) WS(M) CPU(s) ID SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0,00 99,32 3,28 2575 398 pwsh
Befehlsaliase anzeigen

Sind Sie zu faul, einen ganzen Befehl einzugeben? Geben Sie einfach ein paar Wörter ein und drücken Sie die Tabulatortaste, der Befehl wird automatisch vervollständigt oder die Liste der vorgeschlagenen Befehle wird angezeigt, genau wie in der Linux BASH-Shell.

Alternativ gibt es Aliase für einige Befehle.

Um beispielsweise den Bildschirm zu löschen, würden Sie Folgendes eingeben: Clear-Host .

Oder Sie können einfach den Alias ​​des obigen Befehls „cls“ oder „clear“ eingeben, um den Bildschirm zu löschen.

Um die Liste der verfügbaren Aliase anzuzeigen, führen Sie Folgendes aus:

Get-Alias

Hier ist die vollständige Liste der verfügbaren Aliase:

Befehlstyp Name Version Quelle ----------- ---- ------- ------ 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 -> Convert-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 -> Export-Csv Alias ​​erase -> Remove-Item Alias ​​etsn -> Enter-PSSession Alias ​​exsn -> Exit-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- Inhaltsalias 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 Alias-Gruppe -> Group-Object-Alias ​​gsn -> Get-PSSession Alias ​​gsv -> Get-Service Alias ​​gu -> Get-Unique Alias ​​gv -> Get-Variable Alias ​​h -> Get-History Alias ​​history -> 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 -> Remove-PSBreakpoint Alias ​​rcjb -> Receive-Job Alias ​​rcsn -> Receive-PSSession Alias ​​rd -> Remove-Item Alias ​​rdr -> Remove-PSDrive Alias ​​ren -> Rename-Item Alias ​​ri -> Remove-Item Alias ​​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 -> Select-Object Alias ​​set -> Set-Variable Alias ​​si -> Set-Item Alias ​​sl -> Set-Location Alias ​​sls -> Select-String Alias ​​sp -> Set-ItemProperty Alias ​​spjb -> Stop-Job Alias ​​spps -> Stop -Process Alias ​​spsv -> Stop-Service Alias ​​sv -> Set-Variable Alias ​​type -> Get-Content Alias ​​where -> Where-Object Alias ​​wjb -> Wait-Job

Um den Alias ​​für einen bestimmten Befehl anzuzeigen, geben Sie Folgendes ein:

Get-Alias ​​cls

Beispielausgabe:

CommandType Name Version Source ----------- ---- ------- ------ Alias ​​cls -> Clear-Host
Vollständige Liste der verfügbaren Befehle anzeigen

Um die Liste aller verfügbaren PowerShell-Befehle anzuzeigen, führen Sie Folgendes aus:

Get-Command
Anzeigen der Hilfe

Sie wissen nicht, was das Besondere tun wird? Kein Problem. Geben Sie einfach „Hilfe“ ein, um Hilfe zu erhalten. Sie müssen nicht im Internet suchen.

Sie können auch 'Get-Help' verwenden Befehl zusammen mit allen Powershell-Befehlen. Es ist so etwas wie 'Mann' Befehl unter Linux.

Um beispielsweise den Hilfeabschnitt eines Befehls namens "Clear-Host" anzuzeigen, führen Sie Folgendes aus:

Get-Help Clear-Host

Beispielausgabe:

NAME Clear-Host ÜBERSICHT SYNTAX Clear-Host [] BESCHREIBUNG VERWANDTE LINKS https://go.microsoft.com/fwlink/?LinkID=225747BEMERKUNGEN Um die Beispiele anzuzeigen, geben Sie Folgendes ein:„get-help Clear-Host -Beispiele". Geben Sie für weitere Informationen Folgendes ein:„get-help Clear-Host -detailed“. Geben Sie für technische Informationen Folgendes ein:„get-help Clear-Host -full“. Geben Sie für die Online-Hilfe Folgendes ein:"get-help Clear-Host -online

Wie Sie oben sehen, zeigt „Get-Help“ den Hilfeabschnitt eines bestimmten PowerShell-Befehls an, wie den Namen des Befehls, das Syntaxformat, Aliase und Bemerkungen usw.

Um die PowerShell-Konsole zu verlassen, geben Sie einfach Folgendes ein:

beenden

Ich hoffe, Sie haben eine grundlegende Vorstellung davon, wie die PowerShell Core Alpha-Version unter Linux (Ubuntu und CentOS) installiert wird, und die grundlegende Verwendung.

Weiterführende Literatur:

  • PowerShell auf GitHub
  • Erste Schritte mit PowerShell von Channel9 – Videoanleitung
  • PowerShell-Community-Seite
  • PowerShell-YouTube-Kanal

Verwandte Lektüre:

  • Installieren Sie das Windows-Subsystem für Linux mit einem einzigen Befehl

Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Java unter Linux

  3. So installieren Sie NodeJS unter Linux

  4. So installieren oder entfernen Sie Windows PowerShell in Ubuntu/Lubuntu Linux

  5. So installieren Sie den Microsoft Windows-Rechner unter Linux

So installieren Sie WSL2 (Windows-Subsystem für Linux 2) unter Windows 10

So installieren Sie Linux Bash Shell unter Windows 10

So installieren Sie das Windows-Subsystem für Linux

Wie installiere ich Linux Fedora auf Hyper-v Windows 10?

Wie installiert man Linux Mint auf Hyper-v Windows 10?

So installieren Sie (.NET Core) Dotnet Core auf Linux-Distributionen