Shell de Unix para niños

Una shell de Unix es un programa especial que te permite comunicarte con la computadora usando comandos de texto. Imagina que el "cerebro" de la computadora es el núcleo (también llamado kernel). La shell actúa como un "intérprete" o "traductor" entre tú y el núcleo. Su nombre, "shell" (que significa "cáscara" en inglés), viene de que es la capa exterior con la que interactúas para controlar el sistema.
Con la shell, puedes escribir instrucciones para que la computadora haga tareas. También puedes usarla para ejecutar otras herramientas que te ayudan a manejar el equipo. Es una forma muy potente de controlar tu computadora.
Contenido
¿Cómo funciona una Shell?
La shell te permite escribir comandos directamente. Por ejemplo, puedes escribir una orden para copiar un archivo o para ver qué programas están funcionando. La shell toma lo que escribes y lo convierte en algo que el núcleo de la computadora puede entender y ejecutar.
¿Qué son los Scripts de Shell?
Si necesitas hacer varias tareas seguidas o repetir comandos, puedes escribirlos en un archivo de texto especial llamado shell-script. Es como una lista de instrucciones para la shell. Cuando ejecutas este archivo, la shell lee cada línea y realiza las operaciones una por una. Crear estos scripts se conoce como "programación shell" o shell scripting. Aunque no es un lenguaje de programación completo, te permite automatizar muchas cosas.
La Evolución de las Shells
Al principio, cuando las computadoras eran muy grandes y muchos usuarios se conectaban a una sola máquina, usaban "terminales" (como pantallas con teclados) para interactuar. La shell era el programa que les permitía iniciar sesión y controlar la computadora central. Con el tiempo, cuando las computadoras personales se hicieron populares, se crearon programas que imitaban esas terminales físicas. Así, podías seguir usando comandos de texto para manejar tu propia computadora.
Tipos de Shells de Unix
Los usuarios de sistemas como Unix o GNU/Linux pueden elegir entre diferentes shells. Cada una tiene sus propias características y formas de escribir comandos. Algunas de las más conocidas son Bash, Zsh o Korn shell.
Aunque existen interfaces gráficas (como GNOME o KDE) que son más visuales, el término "shell" se asocia más a menudo con la forma de escribir comandos. En Unix, casi cualquier programa puede ser configurado como tu shell principal. Esto significa que si prefieres una forma diferente de dar órdenes, puedes elegir un intérprete distinto.
La Bourne shell (conocida como sh) fue una de las primeras shells importantes en Unix. Se volvió tan popular que casi todos los sistemas similares a Unix tienen una shell compatible con ella. En muchos sistemas Linux, /bin/sh es un enlace a una shell más moderna y con más funciones, como Bash.
Categorías de Shells
Las shells se pueden agrupar en varias categorías:
- Compatibles con Bourne shell: Son las más comunes y se basan en la Bourne shell original.
* Bourne shell (sh): Creada por Steve Bourne en 1978. * Almquist shell (ash): Una versión más ligera y libre. * Bourne-Again shell (bash): Muy popular, parte del proyecto GNU. * Debian Almquist Shell (dash): Un reemplazo moderno de ash. * Korn shell (ksh): Creada por David Korn. * Z shell (zsh): Considerada muy completa, combina características de varias shells.
- Compatibles con la shell de C: Tienen una sintaxis más parecida al lenguaje de programación C.
* C shell (csh): Creada por Bill Joy en 1979. * TENEX C shell (tcsh).
- Otras shells: Son shells con características únicas o diferentes.
* fish: Una shell diseñada para ser muy fácil de usar. * rc: La shell por defecto del sistema operativo Plan 9.
Archivos de Configuración de Shells
Las shells leen archivos especiales para saber cómo deben funcionar cuando las inicias. Estos archivos guardan tus preferencias, como el aspecto de la línea de comandos o los atajos que usas. La ubicación y el nombre de estos archivos pueden variar según la shell que uses.
sh | ksh | csh | tcsh | bash | zsh | |
---|---|---|---|---|---|---|
/etc/.login |
no | no | login | login | no | no |
/etc/csh.cshrc |
no | no | no | sí | no | no |
/etc/csh.login |
no | no | no | login | no | sí |
~/.tcshrc |
no | no | no | sí | no | no |
~/.cshrc |
no | no | sí | sí | no | no |
~/.login |
no | no | login | login | no | no |
~/.logout |
no | no | login | login | no | no |
/etc/profile |
login | login | no | no | i.login | no |
~/.profile |
login | login | no | no | login | no |
~/.bash_profile |
login | no | no | no | login | no |
~/.bash_login |
no | no | no | no | login | no |
~/.bashrc |
no | no | no | no | n/login | no |
/etc/zshenv |
no | no | no | no | no | sí |
/etc/zprofile |
no | no | no | no | no | login |
/etc/zshrc |
no | no | no | no | no | int. |
/etc/zlogin |
no | no | no | no | no | login |
/etc/zlogout |
no | no | no | no | no | login |
~/.zshenv |
no | no | no | no | no | sí |
~/.zprofile |
no | no | no | no | no | login |
~/.zshrc |
no | no | no | no | no | int. |
~/.zlogin |
no | no | no | no | no | login |
~/.zlogout |
no | no | no | no | no | login |
- "no": La shell no lee este archivo.
- "sí": La shell siempre lee este archivo.
- "login": La shell lee el archivo si es una shell de inicio de sesión.
- "n/login": La shell lee el archivo si NO es una shell de inicio de sesión.
- "int.": La shell lee el archivo si es interactiva (es decir, si puedes escribir comandos directamente).
- "i.login": La shell lee el archivo si es una shell de inicio de sesión interactiva.
Shells Históricas
Las shells han evolucionado mucho. La primera shell de Unix fue la Thompson shell (sh), creada por Ken Thompson en 1971. Era muy básica comparada con las de hoy en día y ya no se usa en sistemas modernos. Con el tiempo, se crearon versiones mejoradas que sentaron las bases de las shells que conocemos hoy.
Shells en Otros Sistemas Operativos
Aunque el término "shell de Unix" se refiere a los sistemas basados en Unix, otros sistemas operativos también tienen programas similares para ejecutar comandos. Por ejemplo, en Microsoft Windows, existen programas como command.com, cmd.exe y Windows PowerShell.
Véase también
En inglés: Unix shell Facts for Kids
- Shell script
- Anexo:Programas para Unix
- Núcleo (informática)