Introducción: Preparación del entorno
Antes de escribir scripts, necesitamos entender qué es un shell, cómo comprobar que está instalado y preparar nuestro entorno para trabajar cómodamente.
1. ¿Qué es un shell? #
El shell es un programa que actúa como intérprete entre tú y el sistema operativo. Tú escribes comandos y el shell los ejecuta.
Hay varios shells, los más conocidos son:
| Shell | Descripción breve |
|---|---|
sh | Shell original, muy básico y estándar POSIX. |
bash | Bourne Again SHell, el más usado en Linux, potente y con muchas funciones. |
zsh | Más moderno, usado en macOS por defecto. |
fish | Muy interactivo, pero menos estándar para scripts. |
⚡ En este curso usaremos Bash, ya que es el más extendido y está presente en la mayoría de sistemas Linux. Aprenderás a escribir scripts que también puedan ser compatibles con
sh(POSIX) cuando sea posible.
Comprobar el shell disponible #
En Linux o macOS, abre la terminal y ejecuta:
Muestra el shell que estás usando, por ejemplo:
1echo $SHELLSalida de consola /bin/sh
Para ver la versión de Bash:
1bash --versionSalida de consola GNU bash, version 5.2.0(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Si estás en macOS (que trae zsh por defecto), puedes instalar Bash actualizado:
1brew install bash
En Windows, lo más práctico es usar WSL (Windows Subsystem for Linux). Instala, por ejemplo, Ubuntu desde la Microsoft Store y abre su terminal.
Crear un primer script: "Hola mundo" #
- Crea un archivo llamado
hola.sh:
1nano hola.sh
- Escribe dentro:
1#!/usr/bin/env bash 2echo "Hola mundo desde mi primer script!"Salida de consola Hola mundo desde mi primer script!
-
La primera línea
#!/usr/bin/env bashse llama shebang.- Indica al sistema que use Bash para ejecutar el archivo.
- Es preferible a
#!/bin/bashporque busca Bash en la ruta correcta del sistema.
Dar permisos de ejecución #
Para poder ejecutar el script, dale permisos:
1chmod +x hola.sh
Ejecutar el script #
Ahora ejecútalo con:
1./hola.sh
Salida esperada:
Hola mundo desde mi primer script!
✅ ¡Acabas de ejecutar tu primer Shell Script!
Ejecutar sin permisos (opcional) #
Si no das permisos, también puedes ejecutar usando bash explícitamente:
1bash hola.sh
Comentarios en los scripts #
Para documentar los scripts, usa #:
1#!/usr/bin/env bash 2 # Mi primer script en Bash 3echo "Hola mundo"Salida de consola Hola mundo
⚠️ Todo lo que está después de
#en la misma línea se ignora al ejecutar.
Buenas prácticas desde el inicio #
-
Nombres simples y sin espacios: usa
-o_.- ✅
backup_datos.sh - ❌
mi script.sh
- ✅
-
Siempre empieza con shebang para asegurar que el script se ejecute en el shell correcto.
-
Haz los archivos ejecutables (
chmod +x archivo.sh). -
Comenta lo importante para entender el propósito del script.
2. Ejercicio práctico #
Crea un script llamado saludo.sh que:
- Muestre un mensaje de bienvenida.
- Indique qué usuario está ejecutando el script.
- Muestre la fecha y hora actuales.
💡 Pistas:
- Usa
whoamipara el usuario. - Usa
datepara la fecha.
1#!/usr/bin/env bash 2echo "¡Bienvenido al script!" 3echo "Usuario actual: $(whoami)" 4echo "Fecha y hora actuales: $(date)"Salida de consola ¡Bienvenido al script! Usuario actual: Manuel Fecha y hora actuales: Tue May 26 22:16:44 UTC 2026
Resumen del tema
Conceptos clave #
- Intérpretes de Comandos (Shells): programas que actúan como puente entre el usuario y el kernel del SO (
sh,bash,zsh,fish). - Shebang portable (
#!/usr/bin/env bash): primera línea obligatoria que indica al cargador del sistema qué binario intérprete debe procesar el script. - Permisos de Ejecución (
chmod +x script.sh): otorga el bit ejecutable necesario para invocar el script con./script.sh. - Sustitución de Comandos (
$(comando)): captura la salida estándar de comandos del sistema (whoami,date) para integrarla en variables o cadenas de texto.
Qué debes recordar #
Un script ejecutable en Bash requiere un shebang portable (#!/usr/bin/env bash), permisos con chmod +x y comentarios claros con #.