🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

¿Qué es PowerShell? Guía completa del shell definitivo que todo usuario de Windows debe conocer

En nuestra serie de introducción a Bash, nos hemos centrado en el shell Bash, que es estándar en macOS y Linux. Sin embargo, muchos creadores web seguramente estarán pensando: "Pero yo uso Windows en mi día a día...". ¡No se preocupen! Windows viene de serie con un shell superpotente que supera con creces al antiguo Símbolo del sistema (la pantalla negra). Eso es lo que presentamos hoy: PowerShell.

PowerShell no es solo una herramienta para ejecutar comandos. Es como una "varita mágica" que puede automatizar todo tipo de configuraciones de Windows y realizar tareas complejas con unas pocas líneas de código. Su poder es especialmente inmenso para administrar servidores en el desarrollo web y para hacer más eficientes las tareas diarias.

En este artículo, responderemos a preguntas de principiantes como "¿Qué es PowerShell?" y "¿En qué se diferencia del Símbolo del sistema?", mientras explicamos su uso básico y su encanto con ejemplos que puedes copiar y pegar para verlos funcionar. Si eres usuario de Windows, ya tienes esta arma definitiva. ¿Por qué no aprender a dominarla desde hoy?


La identidad de PowerShell - El shell definitivo nacido de Windows

PowerShell es un shell de línea de comandos y un lenguaje de scripting desarrollado por Microsoft, especializado en la administración y automatización de Windows. Si el antiguo Símbolo del sistema es una calculadora, entonces PowerShell es como Excel. Ambos pueden hacer cálculos, pero los tipos de datos que pueden manejar y el alcance de lo que pueden hacer son completamente diferentes.

La mayor diferencia es manejar "objetos"

La diferencia decisiva entre el Símbolo del sistema y PowerShell radica en el "formato" de la información que devuelven los comandos.

Esta propiedad de "manejar objetos" es lo que eleva a PowerShell de una simple herramienta de línea de comandos a una potente plataforma de automatización.


¡Siente el poder de PowerShell! Manipulando objetos con la canalización (pipeline)

La mejor manera de entenderlo es verlo en acción en lugar de solo leer una explicación. El verdadero valor de PowerShell se demuestra cuando encadenas comandos con la "canalización |". Veamos cómo los objetos se pasan a lo largo de una cinta transportadora al siguiente comando para ser procesados.

Primero, usemos el comando Get-Process para obtener una lista de todos los procesos que se están ejecutando actualmente en el ordenador. Una característica de los comandos de PowerShell es su formato fácil de entender Verbo-Sustantivo.

Get-Process

Se mostraron muchos procesos en formato de tabla, ¿verdad? Esto es una colección de objetos.


A continuación, pasemos este resultado a través de una tubería a Where-Object para filtrar solo aquellos cuyo "nombre de proceso (ProcessName) sea 'chrome'". El $_ se refiere a cada objeto individual que pasa a través de la tubería.

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' }

Solo se mostraron los procesos relacionados con Chrome. Como es un objeto y no texto, puedes filtrar fácilmente especificando una propiedad como ProcessName.


Además, pasemos el resultado filtrado a Sort-Object para ordenarlos en orden descendente de uso de memoria (WS).

Get-Process | Where-Object { $_.ProcessName -eq 'chrome' } | Sort-Object -Property WS -Descending

Simplemente encadenando comandos de esta manera, puedes realizar extracciones y procesamientos de datos complejos como si estuvieras manipulando una base de datos. Este es el poder de PowerShell.


Probemos los comandos básicos (Cmdlets)

Los comandos de PowerShell se llaman oficialmente Cmdlets. Aquí, presentaremos cómo realizar operaciones familiares de Bash o del Símbolo del sistema utilizando cmdlets de PowerShell. Muchos cmdlets tienen "alias" cortos preparados, por lo que también puedes usar comandos familiares como ls y cd.

Cambiar de ubicación (pwd, cd, sl)

Usa Get-Location para verificar tu ubicación actual y Set-Location para moverte.

# Muestra la ubicación actual (alias: pwd)
Get-Location

# Muévete al directorio C:\Users (alias: cd, sl)
Set-Location C:\Users

Listar contenidos (ls, dir, gci)

Usa Get-ChildItem para mostrar una lista de archivos y carpetas.

# Muestra el contenido del directorio actual (alias: ls, dir, gci)
Get-ChildItem

Aprovechando la fortaleza de los objetos, también es fácil buscar de forma recursiva solo ciertos tipos de archivos (incluso dentro de subcarpetas).

# Busca todos los archivos .css desde la ubicación actual hacia abajo
Get-ChildItem -Recurse -Filter "*.css"

Crear archivos y carpetas (ni)

Usa New-Item para crear nuevos elementos (archivos o carpetas).

Crear un archivo:

New-Item -Path ".\new-file.txt" -ItemType File

Crear una carpeta:

New-Item -Path ".\new-folder" -ItemType Directory

Leer y escribir contenido de archivos (cat, gc, sc)

Usa Get-Content para leer el contenido de un archivo y Set-Content para escribir en él.

Escribir en un archivo:

"Hello from PowerShell!" | Set-Content -Path ".\new-file.txt"

Leer el contenido de un archivo (alias: cat, gc):

Get-Content -Path ".\new-file.txt"

Eliminar archivos y carpetas (rm, del, rmdir)

Usa Remove-Item para eliminar archivos y carpetas. Esta operación no se puede deshacer, así que ten mucho cuidado al ejecutarla.

Remove-Item -Path ".\new-file.txt"

Para eliminar una carpeta junto con su contenido, es necesaria la opción -Recurse.

Remove-Item -Path ".\new-folder" -Recurse

Resumen

Esta vez, te hemos guiado a la entrada del mundo de PowerShell, el potente shell que viene de serie con Windows. Al principio, puede que te sientas un poco confundido por los cmdlets desconocidos, pero una vez que entiendas su esencia, no hay herramienta más fiable.

En el desarrollo web, es común trabajar en un entorno local de Windows y desplegar en un servidor de producción Linux. Si puedes dominar PowerShell para automatizar y agilizar tu trabajo en Windows, y también manejar un entorno Linux sin problemas a través de WSL, serás imparable.

Esperamos que el artículo de hoy te haya permitido sentir una parte del encanto y el poder de PowerShell. En el próximo artículo, explicaremos cómo actualizar este PowerShell a la última versión y el procedimiento para instalarlo en macOS/Linux.

[Para principiantes] Cómo instalar e iniciar PowerShell (Windows / Mac / Linux)