Shell de Unix


Un shell de Unix es un intérprete de línea de comandos o shell que proporciona una interfaz de usuario de línea de comandos para sistemas operativos similares a Unix . El shell es tanto un lenguaje de comandos interactivo como un lenguaje de scripting , y el sistema operativo lo utiliza para controlar la ejecución del sistema mediante scripts de shell . [2]

Los usuarios suelen interactuar con un shell de Unix utilizando un emulador de terminal ; sin embargo, la operación directa a través de conexiones de hardware en serie o Secure Shell es común para los sistemas de servidor. Todos los shells de Unix proporcionan comodines de nombre de archivo , canalizaciones , aquí documentos , sustitución de comandos , variables y estructuras de control para pruebas de condición e iteración .

El sentido más genérico del término shell significa cualquier programa que los usuarios empleen para escribir comandos. Un shell oculta los detalles del sistema operativo subyacente y administra los detalles técnicos de la interfaz de programación de aplicaciones del sistema operativo , que es el nivel del sistema operativo que utilizan los programas que se ejecutan en ese sistema operativo.

En los sistemas operativos similares a Unix, los usuarios suelen tener muchas opciones de intérpretes de línea de comandos para sesiones interactivas. Cuando un usuario inicia sesión en el sistema de forma interactiva, un programa de shell se ejecuta automáticamente durante la duración de la sesión. El tipo de shell, que puede personalizarse para cada usuario, se almacena típicamente en el perfil del usuario, por ejemplo, en el archivo de contraseña local o en un sistema de configuración distribuido como NIS o LDAP ; sin embargo, el usuario puede ejecutar cualquier otro shell disponible de forma interactiva.

En hosts con un sistema de ventanas , como macOS , es posible que algunos usuarios nunca usen el shell directamente. En los sistemas Unix, el shell ha sido históricamente el lenguaje de implementación de los scripts de inicio del sistema, incluido el programa que inicia un sistema de ventanas, configura la red y muchas otras funciones esenciales. Sin embargo, algunos proveedores de sistemas han reemplazado el sistema de inicio tradicional basado en shell ( init ) con diferentes enfoques, como systemd .

El primer shell de Unix fue el shell de Thompson , sh , escrito por Ken Thompson en Bell Labs y distribuido con las versiones 1 a 6 de Unix, de 1971 a 1975. [3] Aunque rudimentario para los estándares modernos, introdujo muchas de las características básicas comunes a todos los shells de Unix posteriores, incluida la canalización, las estructuras de control simples que usan ify goto, y el comodín de nombre de archivo. Aunque no se utiliza actualmente, todavía está disponible como parte de algunos sistemas UNIX antiguos.


Windows tcsh y sh shell en un escritorio Mac OS X Leopard [1]