GNU/Linux >> Tutoriales Linux >  >> Linux

Obtener ventajas de PowerShell en Linux:una guía para principiantes

Microsoft PowerShell se ha considerado tradicionalmente como un producto exclusivo de Windows, pero ya no. A partir de PowerShell v6, todas las capacidades de PowerShell ahora están disponibles en varias plataformas, siendo Linux la más popular.

En este tutorial, aprenderá cómo comenzar desde cero instalando PowerShell en Ubuntu (otras distribuciones de Linux son similares), cómo ejecutar comandos e incluso instalar algunos módulos.

¡Empecemos!

Requisitos

Este tutorial contendrá varias demostraciones. Si desea seguirnos, asegúrese de tener lo siguiente:

  • Cualquier distribución de Linux compatible:este tutorial usa Peppermint 10, que se basa en Ubuntu 18.04 (LTS).
  • Una cuenta con acceso raíz.

Actualización del repositorio de paquetes

Antes de pasar a instalar PowerShell en Linux, primero debe actualizar la lista de repositorios del administrador de paquetes apt. Algunas distribuciones de Linux usan el administrador de paquetes apt para instalar paquetes apt; PowerShell es uno de ellos.

Para asegurarse de que apt pueda encontrar el paquete de PowerShell y cualquier dependencia durante la descarga, primero debe actualizar la lista de repositorios de paquetes de apt. Para hacerlo, ejecuta [apt update]() .

sudo apt update

Instalación de PowerShell en Linux

Ahora que ha actualizado los repositorios de paquetes, es hora de instalar PowerShell en Linux. Dado que este tutorial utiliza una distribución basada en Ubuntu, tiene dos formas diferentes de instalar PowerShell; usando paquetes instantáneos o a través de .NET SDK.

Instalación de PowerShell a través de Snap Packages

La forma más fácil de instalar PowerShell en Ubuntu es a través de instantáneas. Las instantáneas son paquetes que funcionan en varias versiones y distribuciones de Linux.

Para instalar PowerShell en Linux a través de un paquete instantáneo, abra una terminal y ejecute el snap install Comando Linux con sudo derechos para usar el nombre del paquete instantáneo de powershell .

De forma predeterminada, los paquetes instantáneos tienen un alcance limitado por motivos de seguridad. Especificando el --classic El parámetro le permite realizar cambios en su sistema fuera del entorno limitado de seguridad.

sudo snap install powershell --classic

Instalación de PowerShell a través del SDK de .NET

1. A veces encontrará que el paquete instantáneo de PowerShell no contiene la última versión de PowerShell. Cuando eso suceda, siempre puede optar por la ruta .NET SDK que siempre se actualizará.

PowerShell está empaquetado con .NET Core, por lo que cuando instala .NET SDK, ¡también obtiene PowerShell!

Descargue e instale el último SDK de .NET disponible ejecutando el siguiente comando usando el apt gerente de empaquetación. En el momento de escribir este artículo, el paquete SDK de .NET más reciente disponible es v5.0.8. Puede consultar la última versión disponible aquí.

sudo apt install dotnet-sdk-5.0

2. Ahora, instale PowerShell a través de dotnet aplicación usando dotnet tool install . El dotnet tool El comando especifica un paquete NuGet en el que se empaqueta PowerShell.

Especificando el --global opción, dotnet instala el paquete de PowerShell en ~\.dotnet\tools y asegura que el directorio esté en la RUTA del sistema para que pueda ejecutarlo desde cualquier lugar.

dotnet tool install --global PowerShell 

Ejecución de comandos básicos de PowerShell en Linux

Ahora que tiene PowerShell instalado en Linux, ¿qué sigue? Comencemos ejecutando algunos comandos básicos. Para iniciar PowerShell, simplemente ejecute pwsh y accederá a la consola interactiva de PowerShell.

Al ser un lenguaje de secuencias de comandos multiplataforma, PowerShell en Linux admite todos los comandos comúnmente conocidos de CMD y el shell de línea de comandos de Linux, como sudo apt update . ¡No es necesario abrir una terminal Bash!

A partir de ahora, puede ejecutar miles de comandos integrados de PowerShell. Mientras lo hace, verifique qué versión de PowerShell está instalada usando $PSVersionTable . Deberías ver que PSEdition se muestra como Core y Plataforma es Unix .

Una vez que haya terminado en la consola de PowerShell, salga ejecutando exit dominio. Este comando lo llevará de regreso a su terminal Bash.

Limitaciones de PowerShell en Linux

El hecho de que pueda instalar PowerShell y ejecutar comandos en él no significa necesariamente que pueda hacer todo lo posible en Windows. Después de todo, al ser Linux de código abierto, es un sistema operativo completamente diferente y algunos comandos no estarán disponibles para funciones que no están disponibles en Linux.

Windows -ne Linux

Por ejemplo, dado que Linux no tiene un registro, no verá ninguna unidad PowerShell. El Get-PSDrive El cmdlet seguirá estando disponible, pero solo devolverá los volúmenes de almacenamiento de Linux montados y otras unidades PS estándar. Puede ver un ejemplo a continuación.

Get-PSDrive | Format-Table -Auto

A diferencia de Microsoft Windows, Linux no tiene Common Information Model (CIM) ni Windows Management Instrumentation (WMI). Ambos ayudan a proporcionar información sobre la administración de dispositivos y aplicaciones al sistema operativo Windows.

Puede ver a continuación que el cmdlet de Windows PowerShell Get-CimInstance no está disponible en PowerShell en Linux.

Get-CimInstance -ClassName Win32_BIOS

Pero si intentas usar Get-CimInstance en Windows PowerShell, verá a continuación que funciona como se esperaba.

Sin trabajos programados

Otro inconveniente de PowerShell en Linux es la falta de trabajos programados. Los trabajos programados son una característica útil de Windows PowerShell que le permite ejecutar tareas en segundo plano a través del Programador de tareas de Windows.

Para crear un trabajo programado en Windows PowerShell, debe registrarse el trabajo a través del Register-ScheduledJob cmdlet. Verá un ejemplo de cómo copiar algunos libros de trabajo de Excel que funcionan en Windows PowerShell a continuación. Notarás que el Register-ScheduledJob no se encuentra el cmdlet.

Aunque no puede programar un trabajo, aún puede invocar trabajos en segundo plano usando el Start-Job dominio. El Start-Job cmdlet le permite ejecutar trabajos en segundo plano en PowerShell para ejecutar una tarea sin interacción con la sesión actual.

Tal vez le gustaría enumerar todos los archivos en /var/backups pero hazlo en segundo plano. Podría crear el comando para ejecutar en un ScriptBlock y crea un trabajo llamado GetAllBackupFiles invocar con Start-Job , como se muestra a continuación.

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

Una vez que se inicia el trabajo en segundo plano, puede recibir el resultado de ese trabajo utilizando el Retrieve-Job cmdlet especificando el -Name que proporcionó al iniciarlo.

Retrieve-Job -Name GetAllBackupFiles

Trabajar con módulos de PowerShell en Linux

Un concepto importante en Windows PowerShell es el módulo de PowerShell. Los módulos de PowerShell son grupos de comandos creados como "paquetes" creados tanto por Microsoft como a través de la comunidad de PowerShell.

Buscar módulos instalados

De forma predeterminada, PowerShell en Linux, como Windows, instala varios módulos. Encuentre todos esos módulos ejecutando el Get-Module comando, como se muestra a continuación. El ListAvailable el parámetro le dice a Get-Module para devolver todos módulos en el sistema de archivos; no solo módulos cargados.

Get-Module -ListAvailable

Puede ver a continuación que el Pester el módulo está instalado en /root/.local/share/powershell/Modules que es la ubicación del usuario para los módulos de PowerShell. Aprenderá a instalar módulos en una próxima sección.

Puede ver cada ubicación para instalar módulos mirando el PSModulePath variable de entorno, como se muestra a continuación. Dado que el valor de $env:PSModulePath es una cadena, el tutorial usa el split operador para dividir la cadena en dos puntos (no punto y coma como Windows) para mostrar cada ruta en una línea diferente.

$env:PSModulePath -split ':'

Instalación de módulos de PowerShell en Linux

Aunque PowerShell en Linux viene con varios módulos ya instalados, es probable que necesite más funciones. Cuando eso suceda, puede aprovechar la Galería de PowerShell. La Galería de PowerShell es un repositorio de miles de módulos que funcionan tanto en Windows como en Linux.

Usando el Install-Module cmdlet, puede instalar módulos en Linux al igual que en Windows. Pero primero, debe encontrar el módulo que está buscando usando Find-Module .

Supongamos que le gustaría ejecutar algunas pruebas de Pester utilizando el popular marco de pruebas de Pester. Pester viene empaquetado en un módulo. Verifique si el módulo Pester está disponible en la Galería de PowerShell usando el Find-Module cmdlet.

Find-Module Pester

Puedes ver debajo que Find-Module encontró el módulo Pester disponible.

Una vez que haya verificado que el módulo Pester está disponible, instálelo usando el Install-Module cmdlet que especifica el Name del módulo.

Install-Module -Name Pester

Cuando ejecutas Install-Module , PowerShell le preguntará acerca de un repositorio que no es de confianza porque el repositorio está marcado como no confiable. Para realizar pruebas, esta advertencia no es motivo de preocupación, así que escriba A para confirmar.

Una vez que se haya instalado el módulo, ahora ejecute el Get-InstalledModule cmdlet y verá que Pester se ha instalado y sus comandos ahora están disponibles.

También verás eso usando el Get-Command cmdlet, también puede encontrar todos los comandos dentro del Pester módulo, como se muestra a continuación.

Get-Command -Module Pester

Ejecución de scripts de PowerShell desde Bash

Para concluir este tutorial, terminemos con la ejecución de scripts de PowerShell desde Bash. A lo largo de este tutorial, ha estado ejecutando comandos de PowerShell de forma interactiva dentro de una consola de PowerShell. Si tiene un script de PowerShell que debe ejecutar, no es necesario acceder a la consola de PowerShell. En su lugar, puede ejecutar el script directamente desde Bash.

Para demostrar cómo ejecutar un script de PowerShell desde Bash, abra su editor de texto Linux favorito, pegue el siguiente comando y guarde el archivo como DrivesInformation.ps1 . Este script simplemente enumerará todas las unidades PS.

Get-PSDrive

En su terminal Bash, en lugar de ejecutar pwsh , presionando Enter y luego ejecutando el script dentro de la consola de PowerShell, invoque el script directamente desde Bash. Para hacer esto, ejecute pwsh de nuevo, pero esta vez especifica el script de PowerShell que acabas de crear, como se muestra a continuación.

Verá que recibe el mismo resultado que recibiría dentro de la sesión interactiva de PowerShell directamente en su terminal Bash.

pwsh /home/tex/DrivesInformation.ps1

Conclusión

¡Ahora debería tener un buen comienzo para ejecutar PowerShell en Linux! ¡Ahora depende de usted comenzar a aprender más sobre PowerShell y automatizar todo lo que pueda!


Linux
  1. Cómo instalar RHEL 8:una guía paso a paso completa

  2. Cómo instalar Discord en Linux:una guía paso a paso

  3. Cómo instalar Slack en Linux:una guía fácil de seguir

  4. Cómo instalar Void Linux:una guía completa paso a paso

  5. Una guía para principiantes de firewalld en Linux

50 comandos útiles de Raspberry Pi:una guía para principiantes

Cómo instalar y usar Curl en distribuciones de Linux:una guía para principiantes

Guía para principiantes de Syslogs en Linux

Una guía completa para instalar Tomcat en Linux

Instalar Golang en Linux – Guía paso a paso

Cómo instalar y usar FFmpeg en distribuciones de Linux | Guía para principiantes