GNU/Linux >> Tutoriels Linux >  >> Linux

Tirer parti de PowerShell sous Linux :Guide du débutant

Microsoft PowerShell a été traditionnellement considéré comme un produit Windows uniquement, mais plus maintenant. Depuis PowerShell v6, toutes les fonctionnalités de PowerShell sont désormais disponibles sur plusieurs plates-formes, Linux étant le plus populaire.

Dans ce didacticiel, vous allez apprendre à démarrer à partir de zéro en installant PowerShell sur Ubuntu (les autres distributions Linux sont similaires), à exécuter des commandes et même à installer certains modules.

Commençons !

Prérequis

Ce tutoriel contiendra diverses démos. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants :

  • Toute distribution Linux prise en charge :ce didacticiel utilise Peppermint 10, qui est basé sur Ubuntu 18.04 (LTS).
  • Un compte avec un accès root.

Mettre à jour le référentiel de packages

Avant de passer à l'installation de PowerShell sur Linux, vous devez d'abord mettre à jour la liste des référentiels du gestionnaire de packages apt. Certaines distributions de Linux utilisent le gestionnaire de packages apt pour installer les packages apt; PowerShell en fait partie.

Pour vous assurer qu'apt peut trouver le package PowerShell et toute dépendance lors du téléchargement, vous devez d'abord mettre à jour la liste des référentiels de packages d'apt. Pour ce faire, exécutez [apt update]() .

sudo apt update

Installation de PowerShell sous Linux

Maintenant que vous avez mis à jour les référentiels de packages, il est temps d'installer PowerShell sur Linux. Étant donné que ce didacticiel utilise une distribution basée sur Ubuntu, vous disposez de deux manières différentes d'installer PowerShell. en utilisant des packages snap ou via le SDK .NET.

Installation de PowerShell via des packages Snap

Le moyen le plus simple d'installer PowerShell sur Ubuntu consiste à utiliser des snaps. Les snaps sont des packages qui fonctionnent sur plusieurs versions et distributions de Linux.

Pour installer PowerShell sur Linux via un package snap, ouvrez un terminal et exécutez le snap install Commande Linux avec sudo droit d'utiliser le nom de package snap de powershell .

Par défaut, les packages snap ont une portée limitée pour des raisons de sécurité. Spécifier le --classic Le paramètre vous permet d'apporter des modifications à votre système en dehors du bac à sable de sécurité.

sudo snap install powershell --classic

Installation de PowerShell via le SDK .NET

1. Parfois, vous constaterez que le package snap PowerShell ne contient pas la dernière version de PowerShell. Lorsque cela se produit, vous pouvez toujours opter pour la route SDK .NET qui sera toujours mise à jour.

PowerShell est fourni avec .NET Core. Ainsi, lorsque vous installez le SDK .NET, vous obtenez également PowerShell !

Téléchargez et installez le dernier SDK .NET disponible en exécutant la commande ci-dessous à l'aide du apt directeur chargé d'emballage. Au moment d'écrire ces lignes, le dernier package SDK .NET disponible est la v5.0.8. Vous pouvez vérifier la dernière version disponible ici.

sudo apt install dotnet-sdk-5.0

2. Maintenant, installez PowerShell via le dotnet application utilisant dotnet tool install . Le dotnet tool La commande spécifie un package NuGet dans lequel PowerShell est conditionné.

En précisant le --global option, dotnet installe le package PowerShell sur ~\.dotnet\tools et s'assure que le répertoire se trouve dans le système PATH afin que vous puissiez l'exécuter de n'importe où.

dotnet tool install --global PowerShell 

Exécuter des commandes PowerShell de base sous Linux

Maintenant que PowerShell est installé sur Linux, que se passe-t-il ensuite ? Commençons par exécuter quelques commandes de base. Pour démarrer PowerShell, exécutez simplement pwsh et vous serez déposé dans la console interactive PowerShell.

En tant que langage de script multiplateforme, PowerShell sur Linux prend en charge toutes les commandes communément connues de CMD et du shell de ligne de commande de Linux, telles que sudo apt update . Pas besoin d'ouvrir un terminal Bash !

À partir de maintenant, vous pouvez exécuter des milliers de commandes PowerShell intégrées. Pendant que vous y êtes, vérifiez quelle version de PowerShell est installée en utilisant $PSVersionTable . Vous devriez voir que la PSEdition s'affiche comme Core et Plateforme est Unix .

Une fois que vous avez terminé dans la console PowerShell, quittez en exécutant le exit commande. Cette commande vous ramènera dans votre terminal Bash.

Limitations de PowerShell sur Linux

Ce n'est pas parce que vous pouvez installer PowerShell et y exécuter des commandes que vous pouvez faire tout ce qui est possible sous Windows. Après tout, Linux étant Open Source, est un système d'exploitation complètement différent et certaines commandes ne seront pas disponibles pour les fonctionnalités non disponibles dans Linux.

Windows -ne Linux

Par exemple, puisque Linux n'a pas de registre, vous ne verrez aucun lecteur PowerShell. Le Get-PSDrive L'applet de commande sera toujours disponible, mais elle ne renverra que les volumes de stockage Linux montés et les autres lecteurs PS standard. Vous pouvez voir un exemple ci-dessous.

Get-PSDrive | Format-Table -Auto

Contrairement à Microsoft Windows, Linux n'a ni Common Information Model (CIM) ni Windows Management Instrumentation (WMI). Ces deux éléments aident à fournir des informations sur la gestion des périphériques et des applications au système d'exploitation Windows.

Vous pouvez voir ci-dessous que l'applet de commande Windows PowerShell Get-CimInstance n'est pas disponible dans PowerShell sous Linux.

Get-CimInstance -ClassName Win32_BIOS

Mais si vous essayez d'utiliser Get-CimInstance dans Windows PowerShell, vous verrez ci-dessous que cela fonctionne comme prévu.

Aucune tâche planifiée

Un autre inconvénient de PowerShell sous Linux est le manque de tâches planifiées. Les tâches planifiées sont une fonctionnalité pratique de Windows PowerShell qui vous permet d'exécuter des tâches en arrière-plan via le planificateur de tâches Windows.

Pour créer une tâche planifiée dans Windows PowerShell, vous devez vous enregistrer la tâche via le Register-ScheduledJob applet de commande. Vous verrez un exemple de copie de certains classeurs Excel qui fonctionne dans Windows PowerShell ci-dessous. Vous remarquerez que le Register-ScheduledJob applet de commande introuvable.

Bien que vous ne puissiez pas planifier une tâche, vous pouvez toujours invoquer des tâches en arrière-plan à l'aide du Start-Job commande. Le Start-Job L'applet de commande vous permet d'exécuter des tâches en arrière-plan dans PowerShell pour exécuter une tâche sans interaction avec la session en cours.

Peut-être souhaitez-vous lister tous les fichiers dans /var/backups mais faites-le en arrière-plan. Vous pouvez créer la commande à exécuter dans un ScriptBlock et créez une tâche appelée GetAllBackupFiles invoquer avec Start-Job , comme indiqué ci-dessous.

Start-Job -Name GetAllBackupFiles -ScriptBlock {Get-ChildItem /var/backups -Recurse}

Une fois que le travail en arrière-plan démarre, vous pouvez alors recevoir la sortie de ce travail en utilisant le Retrieve-Job applet de commande en spécifiant le -Name que vous avez fourni lors de son démarrage.

Retrieve-Job -Name GetAllBackupFiles

Travailler avec les modules PowerShell sous Linux

Un concept important dans Windows PowerShell est le module PowerShell. Les modules PowerShell sont des groupes de commandes construits sous forme de "packages" construits à la fois par Microsoft et via la communauté PowerShell.

Rechercher des modules installés

Par défaut, PowerShell sous Linux, comme Windows, installe divers modules. Trouvez tous ces modules en exécutant le Get-Module commande, comme indiqué ci-dessous. Le ListAvailable le paramètre indique Get-Module pour retourner tous modules sur le système de fichiers ; pas seulement des modules chargés.

Get-Module -ListAvailable

Vous pouvez voir ci-dessous que le Pester le module est installé dans /root/.local/share/powershell/Modules qui est l'emplacement de l'utilisateur pour les modules PowerShell. Vous apprendrez comment installer des modules dans une prochaine section.

Vous pouvez voir chaque emplacement pour installer les modules en regardant le PSModulePath variable d'environnement, comme indiqué ci-dessous. Depuis la valeur de $env:PSModulePath est une chaîne, le tutoriel utilise le split opérateur pour diviser la chaîne en deux-points (et non en points-virgules comme Windows) pour afficher chaque chemin sur une ligne différente.

$env:PSModulePath -split ':'

Installer des modules PowerShell sous Linux

Même si PowerShell sur Linux est livré avec divers modules déjà installés, il est probable que vous ayez besoin de plus de fonctionnalités. Lorsque cela se produit, vous pouvez tirer parti de la galerie PowerShell. La galerie PowerShell est un référentiel de milliers de modules qui fonctionnent à la fois sous Windows et Linux.

Utilisation du Install-Module cmdlet, vous pouvez installer des modules sur Linux comme vous le pouvez sur Windows. Mais d'abord, vous devez trouver le module que vous recherchez en utilisant Find-Module .

Supposons que vous souhaitiez exécuter des tests Pesters en utilisant le framework de test Pester populaire. Pester est emballé dans un module. Vérifiez si le module Pester est disponible dans la PowerShell Gallery en utilisant le Find-Module applet de commande.

Find-Module Pester

Vous pouvez voir ci-dessous que Find-Module trouvé le module Pester disponible.

Une fois que vous avez vérifié que le module Pester est disponible, installez maintenant le module en utilisant le Install-Module applet de commande spécifiant le Name du module.

Install-Module -Name Pester

Lorsque vous exécutez Install-Module , PowerShell vous demandera un référentiel non approuvé, car le référentiel est marqué comme non approuvé. Pour les tests, cet avertissement n'a rien d'inquiétant, alors tapez A pour confirmer.

Une fois le module installé, lancez maintenant le Get-InstalledModule cmdlet et vous verrez que Pester a été installé et ses commandes sont maintenant disponibles.

Vous le verrez également en utilisant le Get-Command applet de commande, vous pouvez également trouver toutes les commandes à l'intérieur du Pester module, comme indiqué ci-dessous.

Get-Command -Module Pester

Exécuter des scripts PowerShell à partir de Bash

Pour conclure ce didacticiel, terminons par l'exécution de scripts PowerShell à partir de Bash. Tout au long de ce didacticiel, vous avez exécuté de manière interactive des commandes PowerShell dans une console PowerShell. Si vous avez un script PowerShell que vous devez exécuter, il n'est pas nécessaire de vous rendre dans la console PowerShell. Au lieu de cela, vous pouvez exécuter le script directement depuis Bash.

Pour démontrer l'exécution d'un script PowerShell à partir de Bash, ouvrez votre éditeur de texte Linux préféré, collez la commande suivante et enregistrez le fichier sous DrivesInformation.ps1 . Ce script énumérera simplement tous les lecteurs PS.

Get-PSDrive

Dans votre terminal Bash, au lieu d'exécuter pwsh , en appuyant sur Entrée, puis en exécutant le script à l'intérieur de la console PowerShell, appelez le script directement à partir de Bash. Pour ce faire, exécutez pwsh à nouveau, mais cette fois, spécifiez le script PowerShell que vous venez de créer, comme indiqué ci-dessous.

Vous verrez que vous recevez la même sortie que dans la session PowerShell interactive directement dans votre terminal Bash.

pwsh /home/tex/DrivesInformation.ps1

Conclusion

Vous devriez maintenant avoir un bon départ pour exécuter PowerShell sous Linux ! C'est maintenant à vous de commencer à en savoir plus sur PowerShell et à automatiser tout ce que vous pouvez !


Linux
  1. Comment installer RHEL 8 :un guide complet étape par étape

  2. Comment installer Discord sur Linux :un guide étape par étape

  3. Comment installer Slack sur Linux :un guide facile à suivre

  4. Comment installer Void Linux :un guide complet étape par étape

  5. Guide du débutant sur le pare-feu sous Linux

50 commandes Raspberry Pi utiles – Guide du débutant

Comment installer et utiliser Curl sur les distributions Linux :Guide du débutant

Guide du débutant sur Syslogs sous Linux

Un guide complet pour installer Tomcat sur Linux

Installer Golang sur Linux - Guide étape par étape

Comment installer et utiliser FFmpeg sur les distributions Linux | Guide du débutant