PowerShell est un cadre de configuration et d'automatisation distribué, évolutif et hétérogène, composé d'un shell de ligne de commande interactif et d'un langage de script, pour le système d'exploitation Windows. Il est construit sur .NET framework, et il permet aux utilisateurs d'automatiser et de simplifier les tâches système. Pour plus de détails sur PowerShell, consultez le lien suivant.
Dans ce bref tutoriel, voyons comment installer PowerShell dans les éditions serveur Ubuntu 14.04/16.04/18.04 LTS et CentOS 7 64 bits.
Installer Windows PowerShell Core 6.0 sous Linux
PowerShell peut être installé sur de nombreuses distributions Linux populaires, notamment Arch Linux, Debian, Ubuntu, Fedora, CentOS, SUSE. J'ai inclus ici les instructions d'installation pour Debian, Ubuntu et CentOS.
Sur Ubuntu 14.04 LTS :
Téléchargez et enregistrez la clé GPG du référentiel PowerShell :
$ wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Mettre à jour la liste des sources logicielles :
$ sudo apt-get update
Ensuite, installez PowerShell à l'aide de la commande :
$ sudo apt-get install -y powershell
Sur Ubuntu 16.04 LTS :
Ajouter la clé GPG du référentiel PowerShell :
$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Mettre à jour la liste des sources logicielles :
$ sudo apt-get update
Ensuite, installez PowerShell à l'aide de la commande :
$ sudo apt-get install -y powershell
Sur Ubuntu 18.04 LTS :
Enregistrez la clé GPG du référentiel PowerShell :
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
Mettez à jour les listes de dépôts et installez PowerShell :
$ sudo apt-get update
$ sudo apt-get install -y powershell
Sur Debian 8 :
$ sudo apt-get install curl apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key ajouter -
$ 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
Sur Debian 9 :
$ sudo apt-get install curl gnupg apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key ajouter -
$ 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
Sur CentOS 7 :
Ajouter un référentiel PowerShell en tant que racine utilisateur :
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
Installer PowerShell :
# yum install -y powershell
Pour les autres distributions, veuillez vous référer aux instructions d'installation officielles .
Nous avons maintenant installé PowerShell. Ensuite, nous verrons comment l'utiliser en temps réel.
Démarrer avec PowerShell
Veuillez noter que PowerShell pour Linux est encore en phase de développement, vous rencontrez donc quelques bogues. S'il y a des bogues, rejoignez le blog de la communauté PowerShell (Le lien est donné à la fin de cet article) et obtenez de l'aide.
Une fois que vous avez installé PowerShell, exécutez la commande suivante pour accéder à la console/session PowerShell.
pwsh
Voici à quoi ressemble la console PowerShell sur mon serveur Ubuntu 18.04 LTS.
PowerShell 6.1.2Copyright (c) Microsoft Corporation. Tous droits réservés.https://aka.ms/pscore6-docsTapez 'help' pour obtenir de l'aide.PS /home/sk>
PowerShell
Dans la session PowerShell, nous mentionnons les commandes PowerShell en tant que cmdlets , et nous mentionnons le signe d'invite PowerShell comme PS /> .
Travailler dans PowerShell est presque similaire à BASH. J'ai exécuté des commandes Linux dans PowerShell. Il semble que presque toutes les commandes Linux fonctionnent dans PowerShell. En outre, PowerShell possède son propre ensemble de commandes (applet de commande). La fonction TAB (autocomplétion) fonctionne comme dans BASH.
Effacer ? Eh bien, donnons quelques exemples.
Afficher la version de PowerShell
Pour afficher la version de PowerShell, saisissez :
$PSVersionTable
Exemple de sortie :
Name Value---- -----PSVersion 6.1.2PSEdition CoreGitCommitId 6.1.2OS Linux 4.15.0-45-generic #48-Ubuntu SMP Tue Jan ...Platform UnixPSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}PSRemotingProtocolVersion 2.3SerializationVersion 1.1.0.1WSManStackVersion 3.0
Comme vous le voyez dans la sortie ci-dessus, la version de PowerShell est 6.1.2 .
Créer des fichiers
Pour créer un nouveau fichier, utilisez 'New-Item' commande comme indiqué ci-dessous.
Nouvel article ostechnix.txt
Exemple de sortie :
Répertoire :/home/skMode LastWriteTime Longueur Nom---- ------------- ------ ---------- 2/11/19 10:28 0 ostechnix.txt
ou utilisez simplement ">" comme indiqué ci-dessous :
""> ostechnix.txt
Ici, "" - indique que le fichier est vide. ostechnix.txt est le nom du fichier.
Pour ajouter du contenu dans le fichier, exécutez la commande suivante :
Set-Content ostechnix.txt -Value "Bienvenue sur le blog OSTechNix !"
Ou
"Bienvenue sur le blog d'OSTechNix !"> ostechnix.txt
Affichage du contenu d'un fichier
Nous avons créé des fichiers à partir du PowerShell. Comment visualisons-nous le contenu de ces fichiers ? C'est facile.
Utilisez simplement 'Get-Content' commande pour afficher le contenu de n'importe quel fichier.
Get-Content
Exemple :
Get-Content ostechnix.txt
Exemple de sortie :
Bienvenue sur le blog d'OSTechNix !
Suppression de fichiers
Pour supprimer un fichier ou un élément, utilisez 'Remove-Item' commande comme indiqué ci-dessous.
Remove-Item ostechnix.txt
Laissez-nous vérifier si l'élément a bien été supprimé à l'aide de la commande :
Get-Content ostechnix.txt
Vous devriez voir une sortie comme ci-dessous.
Get-Content :Impossible de trouver le chemin '/home/sk/ostechnix.txt' car il n'existe pas. À la ligne :1 char :1+ Get-Content ostechnix.txt+ ~~~~~~~~~~ ~~~~~~~~~~~~~~~+ CategoryInfo :ObjectNotFound:(/home/sk/ostechnix.txt:String) [Get-Content], ItemNotFoundException+ FullyQualifiedErrorId :PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
Ou vous pouvez simplement utiliser le "ls" commande pour voir si le fichier existe ou non.
Affichage des processus en cours d'exécution
Pour afficher la liste des processus en cours d'exécution, exécutez simplement :
Get-Process
Exemple de sortie :
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,00 0,07 556 556 Auditd 0,00 0,00 0,03 578 578 AvaHi-Daemon 0 0,00 0,00 0,00 0,00 0,03 578 578 590 578 avahi-daemon 0 0,00 0,00 0,05 2327 327 Bash 0 0,00 0,00 0,00 19 0 BIOCET 0 0,00 0,00 0,00 352 0 BIOSET 0 0,00 0,00 0,00 360 0 Bio-réart 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,002 94 0 kauditd 0 0,00 0,00 0,00 0,00 0,00 0,02 94 0 kauditd 0 0,00 0,00 0,00 0,00 0,00 0,02 94 0 kAUDITD 0 0,00 0,00 0,00 0,00 0,00 0,002 94 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,03 29 0,00 KHUGEPAGED 0 0,00 0,00 0,00 26 0 KHUNGTASKD 0 0,00 0,00 18 0 KinTegrityd 0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0.00 41 0 kmpath_rdac D 0 0 ktravailleur/0:0 0 0,00 0,00 0,04 2369 0 ktravailleur/0:0H 0 0,00 0,00 0,00 2440 0 ktravailleur/0:1 0 0,00 0,00 0,05 2312 0 ktravailleur/0:2H 0 0,00 0,00 0,28 2376 0:3 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 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 Migration / 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,01 2071 036 Pickup 0 0,00 0,00 0,05 799 799 Polkitd 0 0,00 0,02 0,02 2401 327 Powershell 0 0,00 0,00 2072 036 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 9 0 RCUOB / 0 0 0,00 0,51 11 0 RCUOS / 0 0 0,00 0,00 0,06 582 582 _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 277 0 SCSI_TMF_2 0 0,00 0,00 03 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 Tunes 0,00 0,00 0,02 12 0 Watchdog / 0 0 0 0,00 0,00 0,01 798 798 WPA_SUPPLICANT 0 0,00 0,00 0,00 17 0 DRITEBBACK 0 0,00 0,00 0,00 378 0 XFS_MRU_CACH 0 0,00 0,00 0,00 379 0 XFS-BUF / DM-1 0,00 0,00 0,00 539 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 541 0 xfs-conv/sda1 0 0,00 0,00 3 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 377La commande ci-dessus affichera la liste complète des processus en cours d'exécution sur votre système Linux.
Pour afficher un processus en cours d'exécution particulier, utilisez '-Name' option avec la commande ci-dessus.
Par exemple, pour afficher le processus PowerShell, exécutez :
Get-Process-Name pwshExemple de sortie :
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0.00 99.32 3.28 2575 398 pwshAffichage des alias de commande
Êtes-vous trop paresseux pour taper une commande entière ? Tapez simplement quelques mots et appuyez sur la touche de tabulation, la commande se complétera automatiquement ou la liste des commandes suggérées s'affichera, comme dans le shell Linux BASH.
Alternativement, il existe des alias pour certaines commandes.
Par exemple, pour effacer l'écran, vous devez saisir : Clear-Host .
Ou vous pouvez simplement taper l'alias de la commande ci-dessus 'cls' ou 'clear' pour effacer l'écran.
Pour afficher la liste des alias disponibles, exécutez :
Get-AliasVoici la liste complète des alias disponibles :
CommandType Nom Version Source ----------- ---- ------- ------ Alias ? -> Alias Where-Object % -> Alias ForEach-Object cd -> Alias Set-Location chdir -> Alias Set-Location 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- Alias de contenu 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. Alias de gestion 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 -> Nouveau -PSDrive Alias ni -> Nouvel élément Alias nmo -> Nouveau 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 -> Type d'alias Set-Variable -> Get-Content Alias where -> Where-Object Alias wjb -> Wait-JobPour afficher l'alias d'une commande particulière, tapez :
Get-Alias clsExemple de sortie :
CommandType Nom Version Source ----------- ---- ------- ------ Alias cls -> Clear-HostAffichage de la liste complète des commandes disponibles
Pour afficher la liste de toutes les commandes PowerShell disponibles, exécutez :
Get-CommandAfficher l'aide
Vous ne savez pas ce que va faire particulier ? Aucun problème. Tapez simplement "aide" pour obtenir de l'aide. Vous n'avez pas besoin de chercher sur Internet.
Vous pouvez également utiliser 'Get-Help' commande avec toutes les commandes powershell. C'est quelque chose de similaire à 'man' commande sous Linux.
Par exemple, pour afficher la section d'aide d'une commande appelée "Clear-Host", exécutez :
Get-Help Clear-HostExemple de sortie :
NOM Clear-Host SYNOPSIS SYNTAXE Clear-Host [] DESCRIPTION LIENS ASSOCIÉS https://go.microsoft.com/fwlink/?LinkID=225747REMARKS Pour voir les exemples, tapez :"get-help Clear-Host -exemples". Pour plus d'informations, tapez :"get-help Clear-Host -detailed". Pour des informations techniques, tapez :"get-help Clear-Host -full". Pour l'aide en ligne, tapez :"get-help Clear-Host -online Comme vous le voyez ci-dessus, « Get-Help » affiche la section d'aide d'une commande PowerShell spécifique, comme le nom de la commande, le format de syntaxe, les alias et les remarques, etc.
Pour quitter la console PowerShell, tapez simplement :
quitterJ'espère que vous avez une idée de base sur la façon d'installer la version alpha de PowerShell Core sous Linux (Ubuntu et CentOS), et l'utilisation de base.
Autres lectures :
- PowerShell sur GitHub
- Démarrer avec PowerShell à partir de Channel9 – Tutoriel vidéo
- Page de la communauté PowerShell
- Chaîne YouTube PowerShell
Lire connexe :
- Installer le sous-système Windows pour Linux avec une seule commande