PowerShell je distribuovaný, škálovatelný, heterogenní konfigurační a automatizační rámec sestávající z interaktivního shellu příkazového řádku a skriptovacího jazyka pro operační systém Windows. Je postaven na .NET a umožňuje uživatelům automatizovat a zjednodušit systémové úlohy. Další podrobnosti o prostředí PowerShell naleznete na následujícím odkazu.
V tomto krátkém tutoriálu se podíváme, jak nainstalovat PowerShell v Ubuntu 14.04/16.04/18.04 LTS a CentOS 7 64bitových serverových edicích.
Nainstalujte Windows PowerShell Core 6.0 v systému Linux
PowerShell lze nainstalovat na mnoho populárních distribucí Linuxu včetně Arch Linux, Debian, Ubuntu, Fedora, CentOS, SUSE. Zde jsem uvedl instalační pokyny pro Debian, Ubuntu a CentOS.
Na Ubuntu 14.04 LTS:
Stáhněte si a zaregistrujte klíč GPG úložiště PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aktualizujte seznam zdrojů softwaru:
Aktualizace $ sudo apt-get
Potom nainstalujte PowerShell pomocí příkazu:
$ sudo apt-get install -y powershell
Na Ubuntu 16.04 LTS:
Přidat klíč GPG úložiště PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aktualizujte seznam zdrojů softwaru:
Aktualizace $ sudo apt-get
Potom nainstalujte PowerShell pomocí příkazu:
$ sudo apt-get install -y powershell
Na Ubuntu 18.04 LTS:
Zaregistrujte klíč GPG úložiště PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Aktualizujte seznamy úložišť a nainstalujte PowerShell:
Aktualizace $ sudo apt-get
$ sudo apt-get install -y powershell
V Debianu 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'
Aktualizace $ sudo apt-get
$ sudo apt-get install -y powershell
V Debianu 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'
Aktualizace $ sudo apt-get
$ sudo apt-get install -y powershell
V systému CentOS 7:
Přidat úložiště PowerShell jako root uživatel:
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
Nainstalujte PowerShell:
# yum install -y powershell
Další distribuce naleznete v oficiálních pokynech k instalaci .
Nyní jsme nainstalovali PowerShell. Dále uvidíme, jak jej používat v reálném čase.
Začínáme s PowerShell
Upozorňujeme, že PowerShell pro Linux je stále ve fázi vývoje, takže narazíte na nějaké chyby. Pokud se vyskytnou nějaké chyby, připojte se k blogu komunity PowerShell (Odkaz je uveden na konci tohoto článku) a získejte pomoc.
Jakmile nainstalujete PowerShell, spusťte následující příkaz pro vstup do konzoly/relace PowerShellu.
pwsh
Takto vypadá konzole PowerShell na mém serveru Ubuntu 18.04 LTS.
PowerShell 6.1.2 Autorská práva (c) Microsoft Corporation. Všechna práva vyhrazena.https://aka.ms/pscore6-docsNápovědu získáte zadáním „nápovědy“.PS /home/sk>
PowerShell
V relaci PowerShellu zmiňujeme příkazy powershell jako cmdlety a zmiňujeme prompt PowerShell jako PS /> .
Práce v PowerShellu je téměř podobná BASH. Spustil jsem nějaké příkazy Linuxu v PowerShellu. Zdá se, že téměř všechny příkazy Linuxu fungují v prostředí PowerShell. PowerShell má také svou vlastní sadu příkazů (cmdletů). Funkce TAB (automatické doplňování) funguje stejně jako v BASH.
Vymazat? Uveďme několik příkladů.
Zobrazit verzi prostředí PowerShell
Chcete-li zobrazit verzi prostředí PowerShell, zadejte:
$PSVersionTable
Ukázkový výstup:
Název Hodnota---- -----PSVersion 6.1.2PSEdition CoreGitCommitId 6.1.2OS Linux 4.15.0-45-generic #48-Ubuntu SMP Út Jan ...Platforma UnixPSCompatibleVersions {1.0, 2.0, 3.00. ...}PSRemotingProtocolVersion 2.3SerializationVersion 1.1.0.1WSManStackVersion 3.0
Jak vidíte ve výše uvedeném výstupu, verze PowerShellu je 6.1.2 .
Vytváření souborů
K vytvoření nového souboru použijte 'New-Item' příkaz, jak je znázorněno níže.
New-Item otechnix.txt
Ukázkový výstup:
Adresář:/home/skMode LastWriteTime Délka Název---- ------------- ------ ---------- 2/11/19 10:28 0 ostechnix.txt
nebo jednoduše použijte ">", jak je uvedeno níže:
""> otechnix.txt
Tady "" - popisuje, že soubor je prázdný. ostechnix.txt je název souboru.
Chcete-li do souboru přidat nějaký obsah, spusťte následující příkaz:
Set-Content ostechnix.txt – Hodnota „Vítejte na blogu OSTechNix!“
Nebo
"Vítejte na blogu OSTechNix!"> otechnix.txt
Zobrazení obsahu souboru
Vytvořili jsme některé soubory z prostředí PowerShell. Jak vidíme obsah těchto souborů? To je snadné.
Stačí použít Získat obsah příkaz pro zobrazení obsahu libovolného souboru.
Získat obsah
Příklad:
Get-Content ostechnix.txt
Ukázkový výstup:
Vítejte na blogu OSTechNix!
Mazání souborů
Chcete-li smazat soubor nebo položku, použijte 'Remove-Item' příkaz, jak je znázorněno níže.
Remove-Item ostechnix.txt
Nechte nás ověřit, zda byla položka skutečně smazána pomocí příkazu:
Get-Content ostechnix.txt
Měli byste vidět výstup jako níže.
Get-Content:Nelze najít cestu '/home/sk/ostechnix.txt', protože neexistuje.Na řádku:1 char:1+ Get-Content ostechnix.txt+ ~~~~~~~~~~ ~~~~~~~~~~~~~~~+ CategoryInfo :ObjectNotFound:(/home/sk/ostechnix.txt:String) [Get-Content], ItemNotFoundException+ FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.Get
Nebo můžete jednoduše použít "ls" příkaz pro zobrazení, zda soubor existuje nebo ne.
Zobrazení běžících procesů
Chcete-li zobrazit seznam běžících procesů, stačí spustit:
Get-Process
Ukázkový výstup:
NPM(K) PM(M) WS(M) CPU(y) 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,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 360 0 BIOSET 0 0,00 0,00 0,00 0,35 597 597 CROND 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 30 0 FSNOTIFY_MARK 0 0,00 0,00 0,00 43 0 IPv6_ADDRCONF 0 0,00 0.00 0,00 20 0 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 18 0 Kintegrity 18 0 Kintegrity 18 0 Kintegrity. 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 0,00 0,00 0,02 27 0 KSWAPD0 0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,013 2313 0 kworker/0:0 0 0,00 0,00 0,04 2369 0 kworker/0:0H 0 0,00 0,00 0,00 2440 0 kworker/0:1 0 0,00 0,00 0,05 2310 0 kwork 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,01 473 473 LVMed 0 0,00 0,00 0,02 2036 036 Master 0 0,00 0,00 0,000. /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 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 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 _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 269 0 SCSI_TMF_0 0 0,00 0,00 0,00 273 0 SCSI_TMF_1 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 0,00 0,00 1,68 1 1 systemd 0 0,00 0,00 0,24 453 453 systemd časopisu 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 naladěn 0 0,00 0,00 0,02 12 0 pes / 0 0 0,00 0,00 0,01 798 798 WPA_SUPPLICANT 0 0,00 0,00 0,00 17 0 zápis 0 0,00 0,00 0,00 378 0 XFS_MRU_CACHE 0 0,00 0,00 379 0 XFS-BUF/DM-1 0 0.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 0,00 0,00 0,00 0,00 x 54 1,00 0,00 x 5 -sal/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 0,00 0,00 543 0,00 0,00 0,00 543 0.0.0.0Výše uvedený příkaz zobrazí celý seznam běžících procesů ve vašem systému Linux.
Chcete-li zobrazit jakýkoli konkrétní běžící proces, použijte '-Name' pomocí výše uvedeného příkazu.
Chcete-li například zobrazit proces powershell, spusťte:
Get-Process -Name pwshUkázkový výstup:
NPM(K) PM(M) WS(M) CPU(y) ID SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0,00 99,32 3,28 2575 398 pwshZobrazení aliasů příkazů
Jste příliš líní psát celý příkaz? Stačí napsat pár slov a stisknout klávesu Tab, příkaz se automaticky dokončí nebo se zobrazí seznam navrhovaných příkazů, stejně jako v Linux BASH shellu.
Případně existují aliasy pro některé příkazy.
Chcete-li například vymazat obrazovku, zadejte: Clear-Host .
Nebo můžete jednoduše zadat alias výše uvedeného příkazu 'cls' nebo 'clear' a vymazat obrazovku.
Chcete-li zobrazit seznam dostupných aliasů, spusťte:
Získat aliasZde je úplný seznam dostupných aliasů:
CommandType Name Zdroj verze ----------- ---- ------- ------ Alias ? -> Alias Where-Object % -> 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- Obsah 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. Správa 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 group -> 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 -> Alias New-PSSession nv -> Alias nové proměnné oh -> Alias externího hostitele popd -> Alias popd umístění -> Alias Push pwd -> Alias Get-Location r -> Alias Invoke-History 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 -> Sada aliasů Select-Object -> 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 -Zpracovat Alias spsv -> Stop-Service Alias sv -> Set-Variable Alias type -> Get-Content Alias where -> Where-Object Alias wjb -> Wait-JobChcete-li zobrazit alias jakéhokoli konkrétního příkazu, zadejte:
Get-Alias clsUkázkový výstup:
Zdroj verze názvu CommandType ----------- ---- ------- ------ Alias cls -> Clear-HostZobrazení úplného seznamu dostupných příkazů
Chcete-li zobrazit seznam všech dostupných příkazů PowerShellu, spusťte:
Get-CommandZobrazení nápovědy
Nevíte, co konkrétně udělá? Žádný problém. Chcete-li získat pomoc, stačí zadat „pomoc“. Nemusíte hledat na internetu.
Můžete také použít 'Získat nápovědu' příkaz spolu s libovolnými příkazy powershell. Je to něco podobného jako 'člověk' příkaz v Linuxu.
Chcete-li například zobrazit část nápovědy příkazu s názvem "Clear-Host", spusťte:
Získat nápovědu Clear-HostUkázkový výstup:
NAME Clear-Host PŘEHLED SYNTAXE Clear-Host [] POPIS SOUVISEJÍCÍ ODKAZY https://go.microsoft.com/fwlink/?LinkID=225747POZNÁMKY Chcete-li zobrazit příklady, zadejte:"get-help Clear-Host -příklady". Pro více informací zadejte:"get-help Clear-Host -detailed". Technické informace získáte zadáním:"get-help Clear-Host -full". Pro online nápovědu zadejte:"get-help Clear-Host -online Jak vidíte výše, „Získat nápovědu“ zobrazuje část nápovědy konkrétního příkazu PowerShellu, jako je název příkazu, formát syntaxe, aliasy a poznámky atd.
Chcete-li ukončit konzolu PowerShell, zadejte:
exitDoufám, že máte základní představu o tom, jak nainstalovat verzi PowerShell Core alpha v Linuxu (Ubuntu a CentOS) a o základním použití.
Další čtení:
- PowerShell na GitHubu
- Začínáme s prostředím PowerShell od Channel9 – video tutoriál
- Stránka komunity PowerShell
- Kanál YouTube PowerShell
Související čtení:
- Nainstalujte podsystém Windows pro Linux pomocí jediného příkazu