PowerShell es un marco de configuración y automatización distribuido, escalable y heterogéneo, que consta de un shell de línea de comandos interactivo y un lenguaje de secuencias de comandos para el sistema operativo Windows. Está construido sobre .NET framework, y permite a los usuarios automatizar y simplificar las tareas del sistema. Para obtener más detalles sobre PowerShell, consulte el siguiente enlace.
En este breve tutorial, veamos cómo instalar PowerShell en Ubuntu 14.04/16.04/18.04 LTS y ediciones de servidor CentOS 7 de 64 bits.
Instalar Windows PowerShell Core 6.0 en Linux
PowerShell se puede instalar en muchas distribuciones populares de Linux, incluidas Arch Linux, Debian, Ubuntu, Fedora, CentOS, SUSE. Aquí he incluido instrucciones de instalación para Debian, Ubuntu y CentOS.
En Ubuntu 14.04 LTS:
Descargar y registrar la clave GPG del repositorio de PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
$ sudo dpkg -i paquetes-microsoft-prod.deb
Actualice la lista de fuentes de software:
$ sudo apt-obtener actualización
Luego, instale PowerShell usando el comando:
$ sudo apt-get install -y powershell
En Ubuntu 16.04 LTS:
Añadir clave GPG del repositorio de PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
$ sudo dpkg -i paquetes-microsoft-prod.deb
Actualice la lista de fuentes de software:
$ sudo apt-obtener actualización
Luego, instale PowerShell usando el comando:
$ sudo apt-get install -y powershell
En Ubuntu 18.04 LTS:
Registre la clave GPG del repositorio de PowerShell:
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i paquetes-microsoft-prod.deb
Actualice las listas de repositorios e instale PowerShell:
$ sudo apt-obtener actualización
$ sudo apt-get install -y powershell
En Debian 8:
$ sudo apt-get install curl apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key agregar -
$ 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-obtener actualización
$ sudo apt-get install -y powershell
En Debian 9:
$ sudo apt-get install curl gnupg apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key agregar -
$ 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-obtener actualización
$ sudo apt-get install -y powershell
En CentOS 7:
Agregar repositorio de PowerShell como raíz usuario:
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
Instalar PowerShell:
# yum install -y powershell
Para otras distribuciones, consulte las instrucciones oficiales de instalación .
Ya hemos instalado PowerShell. A continuación, veremos cómo usarlo en tiempo real.
Primeros pasos con PowerShell
Tenga en cuenta que PowerShell para Linux aún se encuentra en etapa de desarrollo, por lo que se encuentra con algunos errores. Si hay algún error, únase al blog de la comunidad de PowerShell (El enlace se encuentra al final de este artículo) y obtenga ayuda.
Una vez que haya instalado PowerShell, ejecute el siguiente comando para ingresar a la consola/sesión de PowerShell.
pwsh
Así es como se ve la consola de PowerShell en mi servidor Ubuntu 18.04 LTS.
PowerShell 6.1.2Copyright (c) Microsoft Corporation. Todos los derechos reservados.https://aka.ms/pscore6-docsEscriba 'ayuda' para obtener ayuda.PS /home/sk>
PowerShell
En la sesión de PowerShell, mencionamos los comandos de PowerShell como cmdlets , y mencionamos el inicio de sesión de PowerShell como PS /> .
Trabajar en PowerShell es casi similar a BASH. Ejecuté algunos comandos de Linux en PowerShell. Parece que casi todos los comandos de Linux funcionan en PowerShell. Además, PowerShell tiene su propio conjunto de comandos (cmdlets). La función TAB (autocompletar) funciona como en BASH.
¿Borrar? Bueno, vamos a poner algunos ejemplos.
Ver versión de PowerShell
Para ver la versión de PowerShell, ingrese:
$PSVersionTable
Salida de muestra:
Valor de nombre---- -----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
Como puede ver en el resultado anterior, la versión de PowerShell es 6.1.2 .
Creación de archivos
Para crear un nuevo archivo, use 'New-Item' comando como se muestra a continuación.
Nuevo artículo ostechnix.txt
Salida de muestra:
Directorio:/home/skMode LastWriteTime Longitud Nombre---- ------------- ------ ---------- 11/2/19 10:28 0 ostechnix.txt
o simplemente use ">" como se muestra a continuación:
""> ostechnix.txt
Aquí, "" - describe que el archivo está vacío. ostechnix.txt es el nombre del archivo.
Para agregar algunos contenidos en el archivo, ejecute el siguiente comando:
Set-Content ostechnix.txt -Value "¡Bienvenido al blog de OSTechNix!"
O
"¡Bienvenido al blog de OSTechNix!"> ostechnix.txt
Ver el contenido de un archivo
Hemos creado algunos archivos desde PowerShell. ¿Cómo vemos el contenido de esos archivos? Eso es fácil.
Simplemente use 'Get-Content' comando para mostrar el contenido de cualquier archivo.
Get-Content
Ejemplo:
Obtener-Contenido ostechnix.txt
Salida de muestra:
¡Bienvenido al blog OSTechNix!
Eliminar archivos
Para eliminar un archivo o elemento, use 'Remove-Item' comando como se muestra a continuación.
Eliminar elemento ostechnix.txt
Verifiquemos si el elemento realmente se eliminó usando el comando:
Obtener-Contenido ostechnix.txt
Debería ver un resultado como el siguiente.
Get-Content:No se puede encontrar la ruta '/home/sk/ostechnix.txt' porque no existe. En la línea:1 char:1+ Get-Content ostechnix.txt+ ~~~~~~~~~~ ~~~~~~~~~~~~~~~+ CategoryInfo:ObjectNotFound:(/home/sk/ostechnix.txt:String) [Get-Content], ItemNotFoundException+ FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
O simplemente puede usar "ls" comando para ver si el archivo existe o no.
Ver los procesos en ejecución
Para ver la lista de procesos en ejecución, simplemente ejecute:
Obtener-Proceso
Salida de muestra:
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 0.00 257 0 ATA_SFF 0 0.00 0.0 0.07 556 556 Auditd 0 0.00 0.00 0.03 578 578 Avahi-Daemon 0 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 Bioset 0 0.00 0.00 0.35 597 597 Crond 0 0.00 0.00 0.00 31 0 Crypto 0 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 kpsmosed 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 2 0 KTHREADD 0 0.00 0.00 0.00 39 0 Kthrotld 0 0.00 0.00 0.01 2313 0 ktrabajador/0:0 0 0,00 0,00 0,04 2369 0 ktrabajador/0:0H 0 0,00 0,00 0,00 2440 0 ktrabajador/0:1 0 0,00 0,00 0,05 2312 0 ktrabajador/0:2H 0 0,00 0,00 0,20 2370/6 0 0.00 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.0 0.01 473 473 VMEDAD 0 0.00 0.00 0.02 2036 036 MAESTRO 0 0.00 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 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 0.00 0.02 5.02 2401 327 Powershell 0 0.00 0.00 000 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 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 267 0 SCSI _EH_0 0 0.00 0.00 0.00 271 0 SCSI_EH_1 0 0.00 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.033 033174 174 174 022 022 2222222222224D 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 Tuned 0 0.00 0.00 0.02 12 0 WatchDog/0 0 0.00 0.00 0.01 798 798 WPA_Suplicant 0 0.00 0.00 0.00 17 0 redacción de escritura 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 382 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 38 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 x3sallocEl comando anterior mostrará la lista completa de procesos en ejecución en su sistema Linux.
Para ver cualquier proceso en ejecución en particular, use '-Name' opción con el comando anterior.
Por ejemplo, para ver el proceso de PowerShell, ejecute:
Obtener-Proceso -Nombre pwshSalida de muestra:
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- -- --------- 0 0.00 99.32 3.28 2575 398 pwshVer alias de comandos
¿Eres demasiado perezoso para escribir un comando completo? Simplemente escriba algunas palabras y presione la tecla de tabulación, el comando se completará automáticamente o se mostrará la lista de comandos sugeridos, al igual que en el shell BASH de Linux.
Alternativamente, hay alias para algunos comandos.
Por ejemplo, para borrar la pantalla, escribiría: Clear-Host .
O simplemente puede escribir el alias del comando anterior 'cls' o 'clear' para borrar la pantalla.
Para ver la lista de alias disponibles, ejecute:
Obtener-AliasEsta es la lista completa de alias disponibles:
CommandType Nombre Versión Origen ----------- ---- ------- ------ ¿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 -> Exportar -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 contenido 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 administración gjb -> Obtener alias de trabajo gl -> Obtener alias de ubicación gm -> Obtener alias de miembro gmo -> Obtener alias de módulo gp -> Obtener alias de propiedad de elemento gps -> Obtener alias de proceso gpv -> Obtener valor de propiedad de elemento 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 -> Detener-Proceso Alias md -> mkdir Alias medida -> Medir-Objeto 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 -> Alias de objeto seleccionado set -> Alias de variable de conjunto si -> Alias de elemento de conjunto sl -> Alias de ubicación de conjunto sls -> Alias de cadena de selección sp -> Alias de propiedad de elemento de conjunto spjb -> Alias de detención de trabajo spps -> Detener -Process Alias spsv -> Stop-Service Alias sv -> Establecer tipo de alias de variable -> Obtener alias de contenido donde -> Dónde-Alias de objeto wjb -> Esperar trabajoPara ver el alias de cualquier comando en particular, escriba:
Cls Get-AliasSalida de muestra:
CommandType Nombre Versión Fuente ----------- ---- ------- ------ Alias cls -> Clear-HostVer la lista completa de comandos disponibles
Para ver la lista de todos los comandos de PowerShell disponibles, ejecute:
Obtener comandoVer ayuda
¿No sabes qué hará en particular? No hay problema. Simplemente escriba 'ayuda' para obtener ayuda. No tienes que buscar en Internet.
También puedes usar 'Get-Help' comando junto con cualquier comando de powershell. Es algo parecido a 'man' comando en Linux.
Por ejemplo, para mostrar la sección de ayuda de un comando llamado "Clear-Host", ejecute:
Obtener-Ayuda Clear-HostSalida de muestra:
NOMBRE Clear-Host SINOPSIS SINTAXIS Clear-Host [] DESCRIPCIÓN VÍNCULOS RELACIONADOS https://go.microsoft.com/fwlink/?LinkID=225747OBSERVACIONES Para ver los ejemplos, escriba:"get-help Clear-Host -ejemplos". Para obtener más información, escriba:"get-help Clear-Host -detailed". Para obtener información técnica, escriba:"get-help Clear-Host -full". Para obtener ayuda en línea, escriba:"get-help Clear-Host -online Como ve arriba, 'Get-Help' muestra la sección de ayuda de un comando específico de PowerShell, como el nombre del comando, el formato de sintaxis, los alias y los comentarios, etc.
Para salir de la consola de PowerShell, simplemente escriba:
salirEspero que tenga una idea básica sobre cómo instalar la versión alfa de PowerShell Core en Linux (Ubuntu y CentOS) y el uso básico.
Lectura adicional:
- PowerShell en GitHub
- Introducción a PowerShell de Channel9:tutorial en vídeo
- Página de la comunidad de PowerShell
- Canal de YouTube de PowerShell
Lectura relacionada:
- Instalar subsistema de Windows para Linux con un solo comando