Qué es un shell y cómo usarlo con seguridad
Autor: Redacción Domeny.ForSale Publicado
En resumen: Un shell, o intérprete de comandos del sistema, es un programa que recibe las órdenes del usuario y permite ejecutar programas y realizar operaciones en el sistema. Normalmente se trata de un intérprete de comandos de texto, como Bash, Zsh o PowerShell. El shell no es lo mismo que el terminal: el terminal ofrece el espacio donde se escriben los comandos, y el shell los interpreta.
¿Para qué sirve un shell?
El shell permite manejar el ordenador mediante comandos en lugar de hacer clic en botones e iconos. Con él puedes explorar directorios, copiar archivos, ejecutar aplicaciones, consultar los procesos en ejecución o administrar un servidor. Las operaciones disponibles dependen del sistema, de los programas instalados y de los permisos de la cuenta.
Cuando escribes un comando, el shell reconoce su nombre y sus argumentos adicionales, es decir, la información que indica cómo debe realizarse la tarea. A continuación, ejecuta una función propia o inicia un programa externo. Por ejemplo, con el comando python script.py, el shell inicia el intérprete de Python y le pasa el nombre del archivo que debe ejecutar; no interpreta por sí mismo el código de Python.
Los shells resultan especialmente útiles para tareas repetitivas. En lugar de cambiar manualmente el nombre de varias decenas de archivos, puedes preparar un conjunto de comandos que lo haga siguiendo una misma regla. Ese conjunto de comandos guardado en un archivo se llama script de shell.
El término «shell» también tiene un sentido más amplio: puede designar la interfaz gráfica con la que se maneja el sistema. Sin embargo, en la documentación de programación y en la administración de servidores suele referirse al intérprete de comandos de texto.
Shell, terminal, consola y SSH: ¿en qué se diferencian?
Estos términos a veces se usan indistintamente, pero describen distintos elementos del trabajo con un ordenador:
| Concepto | Qué significa |
|---|---|
| Shell | Programa que interpreta comandos, como Bash o PowerShell. |
| Terminal | Aplicación que proporciona entrada y salida de texto y en la que puede ejecutarse un shell, como Windows Terminal. |
| Consola | Término cuyo significado depende del contexto; puede referirse al terminal del sistema o, coloquialmente, a una ventana de comandos. |
| SSH | Protocolo para conectarse de forma segura a otro ordenador, a menudo para trabajar en su shell. |
Así, puedes abrir Windows Terminal, ejecutar en él PowerShell y después conectarte por SSH a un servidor Linux. Una vez iniciada la sesión, los comandos pueden ser interpretados por Bash en el servidor. La ventana sigue siendo la misma, pero cambian tanto el ordenador que ejecuta los comandos como el shell utilizado.
Esta distinción tiene importancia práctica al seguir instrucciones. Un comando presentado como «pégalo en el terminal» puede requerir un shell concreto, un sistema determinado o un programa adicional. Abrir cualquier ventana de texto no garantiza la compatibilidad.
Los shells más populares y sus usos
Bash se utiliza ampliamente en sistemas Linux y en scripts de administración. Zsh es el shell interactivo predeterminado para las nuevas cuentas de usuario en las versiones actuales de macOS; también lo encontrarás en Linux. Ambos comparten muchos comandos y estructuras, pero no todos los scripts funcionan de la misma manera en los dos.
PowerShell se desarrolla principalmente para la automatización y la administración. Funciona en Windows, y sus versiones actuales también están disponibles para Linux y macOS. A diferencia de las habituales tuberías de texto de Bash, las tuberías de PowerShell pueden transmitir objetos estructurados, por ejemplo, información sobre procesos con campos separados para el nombre y el identificador.
cmd.exe, el intérprete de comandos clásico de Windows, sigue apareciendo en instrucciones antiguas y scripts por lotes. No es otro nombre de PowerShella. Los comandos y la sintaxis de estos dos shells son distintos, aunque ambos pueden ejecutarse en Windows Terminal.
Para empezar, no necesitas instalar un shell nuevo. Utiliza el que esté disponible en tu entorno y comprueba para qué sistema y shell se han preparado las instrucciones que vas a seguir.
Primeros comandos: un ejemplo sencillo
Una forma segura de empezar es comprobar el directorio actual y mostrar su contenido. El directorio actual es la ubicación que el shell toma como referencia para las rutas que no se indican de forma completa.
En Bash o Zsh, escribe lo siguiente en este orden:
pwd
ls
mkdir practica-shell
cd practica-shell
pwd
El comando pwd muestra el directorio actual, ls muestra su contenido y mkdir crea un directorio nuevo. El comando cd cambia al directorio indicado. Este ejemplo no elimina archivos: crea la carpeta practica-shell, siempre que tengas los permisos necesarios y que esa carpeta no exista ya.
En PowerShellu, la secuencia equivalente con los nombres completos de los comandos es la siguiente:
Get-Location
Get-ChildItem
New-Item -ItemType Directory -Name practica-shell
Set-Location practica-shell
Get-Location
Si la ruta contiene espacios, escríbela entre comillas, por ejemplo, cd "Mis documentos". Sin ellas, el shell puede interpretar las partes de la ruta como argumentos separados.
¿Cómo usar el shell con seguridad?
Un shell no es peligroso por definición, pero permite realizar rápidamente operaciones sobre muchos archivos. Hay que prestar especial atención a los comandos que eliminan datos, modifican permisos o se ejecutan como administrador. Eliminar un archivo mediante un comando no implica necesariamente enviarlo a la papelera.
Antes de ejecutar un comando desconocido, comprueba qué hace y cuál es el directorio actual. No copies sin entenderlas instrucciones que descargan un script de internet y lo ejecutan de inmediato. Si estás conectado a un servidor por SSH, asegúrate también de saber si estás trabajando en un entorno de pruebas o de producción.
Haz los primeros ejercicios en un directorio separado, con copias de archivos que no sean importantes. El siguiente paso puede ser consultar la ayuda de un comando: en Bash, usa help cd, y en PowerShellu, Get-Help Set-Location.
Consulta también: ¿Qué es AGI?
