3.4Línea de comandos / PowerShell
Lo esencial en 30 segundos
- La línea de comandos, y sobre todo PowerShell, permite automatizar: una tarea repetitiva se convierte en un script reproducible.
- Los cmdlets siguen el formato Verbo-Sustantivo (Get-, Set-, New-…) : esa regularidad hace el lenguaje predecible.
- La canalización (|) transmite objetos estructurados de un comando al siguiente, no texto sin formato; se prueba en lectura (Get-) antes de actuar.
Mini-caso hilado — Sofiane automatiza una tarea repetitiva
Sofiane, administrador de sistemas en una pyme de distribución en Argel, debe detectar cada semana los puestos con más carga de memoria. Hacerlo con el ratón, puesto por puesto, le lleva una eternidad. Abre PowerShell y compone una sola línea: Get-Process | Sort-Object WS -Descending | Select-Object -First 5. Lee la línea como una frase: listar los procesos, ordenarlos por memoria, quedarse con los cinco primeros. Comprende la lógica Verbo-Sustantivo de los cmdlets y la canalización que transmite objetos. Anota el reflejo: probar en lectura (Get-) antes de actuar (Set- o Remove-) y automatizar lo que es repetitivo.
Caso autónomo de esta sección: vuelve en el curso, el esquema, el guion y el reto 48 h de la sección 3.4.
1. Por qué la línea de comandos
Hacer clic sirve para una acción puntual; repetir la misma acción decenas de veces con el ratón se vuelve absurdo. La línea de comandos, y sobre todo PowerShell en Windows, permite automatizar: crear 50 cuentas, exportar una lista, aplicar un ajuste en todas partes, en unas pocas líneas reproducibles. Sofiane transforma las tareas repetitivas en scripts que reproduce idénticamente.
2. La lógica verbo-sustantivo
PowerShell se basa en cmdlets nombrados Verbo-Sustantivo: Get-Process, Get-Service, New-ADUser, Set-Date. Esta regularidad hace el lenguaje predecible: si Get- lee y Set- modifica, uno adivina comandos que nunca ha visto. Los parámetros precisan la acción (-Name, -Path).
3. La canalización: objetos, no texto
La fuerza de PowerShell es la canalización (|) que pasa el resultado de un comando al siguiente y, a diferencia de los antiguos shells, son objetos estructurados, no texto sin formato. Así se encadenan lectura, orden y acción: listar, ordenar, quedarse solo con lo pertinente, actuar. Sofiane ve en esta composición la verdadera potencia de la herramienta.
Get-…) y la lógica Verbo-Sustantivo se aprende rápido. Un cmdlet Set- o Remove- modifica realmente el sistema: se prueba primero en lectura antes de actuar. Y un script copiado sin entenderlo es un riesgo: se automatiza lo que es repetitivo y ya dominado a mano. Sofiane siempre lee antes de pulsar Entrar.🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Listar los procesos grandes, correctamente
Encontrar los 5 procesos que consumen más memoria, como Sofiane:
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
# Get-Process -> lista los procesos (objetos)
# Sort-Object -> ordena por memoria (WS)
# Select-Object -> se queda con los 5 primeros
Lectura: cada «|» pasa objetos a la etapa siguiente; la respuesta se compone.
Lección: una línea sustituye un largo clic a clic y se reproduce idénticamente.
Vocabulario de la sección
- PowerShell
- Shell y lenguaje de automatización de Windows, orientado a objetos.
Ejemplo sencillo: Sofiane automatiza una tarea repetitiva en una línea.
Lo que no es: una simple ventana de navegación de archivos.
Reflejo: automatizar Windows → PowerShell.
- Cmdlet
- Comando de PowerShell con formato Verbo-Sustantivo (p. ej. Get-Service).
Ejemplo sencillo: Get-Process es un cmdlet que lista los procesos.
Lo que no es: un archivo ejecutable gráfico.
Reflejo: comando de PowerShell → cmdlet.
- Parámetro
- Opción que precisa un cmdlet (p. ej. -Name, -Path).
Ejemplo sencillo: Sofiane añade -Descending para ordenar al revés.
Lo que no es: un valor tecleado en un formulario.
Reflejo: precisar una acción → un parámetro.
- Canalización (|)
- Mecanismo que transmite el resultado de un comando al siguiente.
Ejemplo sencillo: Sofiane encadena Get-Process | Sort-Object | Select-Object.
Lo que no es: un copiar y pegar manual entre dos comandos.
Reflejo: encadenar cmdlets → la canalización.
- Automatización
- Sustituir una tarea manual repetitiva por un script reproducible.
Ejemplo sencillo: Sofiane reproduce la misma línea cada semana.
Lo que no es: rehacer cada vez los clics a mano.
Reflejo: tarea repetitiva → un script.
En la práctica — En la práctica — Leer y componer comandos
- Detecten el verbo y el sustantivo en Get-Service, New-ADUser, Set-Date, como Sofiane.
- Adivinen qué harían Get-EventLog o Stop-Service, según el verbo.
- Compongan mentalmente: listar → ordenar → quedarse con los N primeros, con pipes.
- Anoten una tarea repetitiva de su día a día que ganaría con automatizarse.
Guion paso a paso — componer una línea como Sofiane (4 min)
1) Detecten el verbo y el sustantivo del cmdlet (p. ej. Get-Process). 2) Añadan los parámetros útiles (p. ej. -Descending). 3) Encadenen con otro cmdlet mediante el pipe (|). 4) Terminen con la acción deseada (p. ej. Select-Object -First 5). 5) Prueben primero en lectura (Get-) antes de cualquier acción que modifique.
Guarda esta línea: la misma receta sirve para ordenar, filtrar y extraer cualquier lista de objetos.
Modelo copiar-pegar — mi primera línea PowerShell
Get-Process | Sort-Object WS -Descending | Select-Object -First 5
Verbo-Sustantivo : Get- lee / Set- modifica / New- crea / Remove- elimina
Parametros : -Name, -Path, -Descending...
Canalizacion : | transmite OBJETOS, no texto
Reflejo : probar en lectura (Get-) antes de actuar
Listar los servicios
Sofiane lanza Get-Service para ver el estado de los servicios de un servidor.
Ordenar por memoria
Sofiane encadena Sort-Object WS -Descending para detectar los grandes consumidores.
Crear una cuenta
Sofiane adivina New-ADUser por el verbo New-: el formato Verbo-Sustantivo hace el lenguaje predecible.
Probar antes de actuar
Antes de cualquier Remove-, Sofiane lista primero con un Get- para comprobar que apunta a los objetos correctos.
✓ Buenas prácticas
- Retener la lógica Verbo-Sustantivo para adivinar los cmdlets.
- Probar un comando en lectura (Get-) antes de actuar (Set-/Remove-).
- Automatizar lo que es repetitivo y ya dominado a mano.
✗ Errores frecuentes
- Lanzar un comando destructivo sin haberlo probado en lectura.
- Copiar un script encontrado en internet sin entenderlo.
- Automatizar una tarea mal dominada manualmente.
Puntos clave
- PowerShell sirve para administrar y automatizar en Windows.
- Los cmdlets siguen el formato Verbo-Sustantivo, precisado por parámetros.
- La canalización (|) encadena objetos estructurados, no texto.
- Se prueba en lectura (Get-) antes de actuar, y se automatiza lo repetitivo.
Reto 48 h — aplícalo mañana
Como Sofiane, abre PowerShell y compón una línea con una canalización: lista objetos (p. ej. Get-Process), ordénalos y luego quédate solo con los primeros. Escribe después, en una frase, qué tarea repetitiva de tu día a día merecería un script, y por qué se prueba en lectura antes de actuar.
- Puedo explicar la lógica Verbo-Sustantivo de los cmdlets.
- Comprendo qué hace la canalización (|) con objetos.
- Sé por qué se prueba en lectura antes de actuar.
Preguntas frecuentes
¿Hay que ser desarrollador para usar PowerShell?
No: se empieza por comandos sencillos (Get-…) para leer el estado de un sistema y luego se compone progresivamente. La lógica verbo-sustantivo y la canalización se aprenden rápido; el verdadero riesgo no es la dificultad, sino los comandos destructivos lanzados sin probar.
¿Por qué probar en lectura antes de actuar?
Porque un cmdlet Remove- o Set- modifica realmente el sistema. Se lista primero (Get-) para comprobar que se apunta a los objetos correctos y luego se actúa; eso evita borrar o modificar lo que no tocaba.
¿Qué hace la canalización «|» en PowerShell?