Es posible que haya oído hablar de Bash, el shell predeterminado en la mayoría de las distribuciones de Linux. Hay otro shell que viene preinstalado en Linux: el shell Bourne.
El shell Bourne es uno de los shells más antiguos que todavía se usan en los sistemas Linux modernos, aunque no se usa tanto como Bash. Esto es lo que necesita saber sobre el shell Bourne en Linux.
¿Qué es la concha de Bourne?
El shell Bourne, a menudo abreviado como "sh", lleva el nombre del científico informático británico Stephen R. Bourne, quien lo desarrolló mientras trabajaba en Bell Labs en 1978. El shell reemplazó al anterior Thompson Shell, escrito por uno de los creadores originales de Unix, Ken Thompson.
El shell Bourne debutó con la Versión 7 de Unix en 1979. Tenía características como control de flujo, variables y manejo mejorado de cadenas. Estas características facilitaron el uso del shell como un lenguaje de programación en lugar de solo una forma de llamar a otros programas.
Si bien el shell Bourne siguió siendo popular para escribir scripts portátiles en los sistemas Unix, fue reemplazado para uso interactivo por C shell, KornShell, Bourne Again shell, también conocido como Bash y Z caparazón. Estos proyectiles ofrecían características como
historial de comandos y edición de línea de comandos que hizo la vida más fácil para los usuarios y administradores.KornShell, Bash y Z shell (tratados más adelante) tienen sintaxis influenciadas por Bourne shell.
Los lenguajes de secuencias de comandos multiplataforma más potentes con características aún más avanzadas como Perl y Python también reemplazaron en gran medida a las secuencias de comandos de shell.
Aún así, el shell Bourne se entiende ampliamente y muchos scripts proporcionados con los programas de Linux usan su sintaxis para varias tareas.
El comportamiento del shell Bourne fue codificado en el estándar POSIX, tantos sistemas modernos similares a Unix lo implementan de alguna manera mediante el uso de un shell compatible.
Alternativas modernas de Bourne Shell
Existen varias alternativas modernas de código abierto al shell Bourne original en los sistemas Linux. Estos son algunos de los más conocidos:
1. Bourne Again Shell (Bash)
El nombre Concha de Bourne Again (Bash) es un juego en el caparazón de Bourne. Este shell se desarrolló originalmente como un componente del sistema GNU, anterior a Linux durante varios años.
Es en gran medida compatible con los scripts escritos originalmente para el shell Bourne. También incorporó características como la edición de línea de comandos iniciada por KornShell.
Bash es el shell predeterminado en muchas distribuciones de Linux y, por lo tanto, se ha convertido en un estándar de facto por sí solo.
2. KornShell
KornShell, también conocido como ksh, fue desarrollado originalmente por David Korn, también en Bell Labs, en la década de 1980. Construido sobre Bourne Shell, KornShell introdujo algunas características adicionales como control de trabajos, matrices y edición de línea de comandos. Esta última fue una característica revolucionaria cuando apareció por primera vez porque era mucho más fácil que usar el mecanismo de historial del shell C.
Si necesita volver a editar un comando emitido anteriormente, puede usar comandos similares a Vi o Emacs para hacerlo.
KornShell estaba predeterminado en algunos sistemas Linux comerciales como Oracle Solaris. Como AT&T lanzó inicialmente el KornShell original bajo una licencia patentada, finalmente se lanzó una versión de código abierto llamada pdksh.
3. Shell de Almquist/Debian Almquist
El caparazón Almquist fue escrito originalmente por Kenneth Almquist y fue pensado como un reemplazo liviano para el caparazón Bourne. Muchos sistemas BSD lo incluyen como la implementación de sh.
Una versión fue portada a Debian en la década de 1990 y se conoce como Debian Almquist shell. Como su nombre lo indica, es la implementación de sh en los sistemas Debian y Ubuntu.
4. Concha Z
caparazón Z, o zsh, es uno de los shells más nuevos, desarrollado originalmente en 1990 por Paul Falsted. Z shell se ha vuelto conocido por sus características avanzadas. Un buen ejemplo es el globbing recursivo, o la capacidad de hacer coincidir los comodines en los subdirectorios.
Z shell es el shell de inicio de sesión predeterminado para macOS y Kali Linux.
Compatibilidad con Bourne Shell
Si bien estos shells son en gran medida compatibles con los scripts escritos originalmente para el shell Bourne, hay formas de cambiar su comportamiento para que se parezcan más al shell original.
La principal forma de hacerlo es a través de un enlace simbólico. La mayoría de los sistemas enlazarán /bin/sh a Bash o a otro shell. Cuando se invoca de esta manera, el shell entrará en un modo de compatibilidad con el shell Bourne.
Puedes ver qué concha /bin/sh está vinculado a con el comando ls:
ls -l /bin/sh
Ahora ya sabes sobre la concha de Bourne
El shell Bourne es uno de los estándares más antiguos para secuencias de comandos en sistemas similares a Unix. Incluso si ha sido reemplazado por otros shells, sigue siendo vital para ejecutar scripts escritos por otros.
Bash es uno de los mejores derivados de Bourne para la codificación, particularmente por su enfoque de las variables. Tiene algunas variables únicas que pueden hacer que desee considerarlo para su próximo proyecto.