Es posible que hayas oído hablar de Bash, el intérprete de comandos por defecto en la mayoría de las distribuciones de Linux. Hay otro shell que viene preinstalado en Linux: el shell Bourne.
El intérprete de comandos Bourne es uno de los más antiguos que aún se utilizan en los sistemas Linux modernos, aunque no es tan utilizado como Bash. Esto es lo que necesitas saber sobre el shell Bourne en Linux., de acuerdo al portal Make Use Of.
¿Qué es el intérprete de órdenes Bourne?
El shell Bourne, a menudo abreviado como "sh", recibe su nombre del informático británico Stephen R. Bourne, que lo desarrolló mientras trabajaba en los Laboratorios Bell en 1978. El shell sustituyó al anterior Thompson Shell, escrito por uno de los creadores originales de Unix, Ken Thompson.
Puede leer también | ¿Cómo podría afirmar que Mui Shell es el futuro escritorio de Linux?
El intérprete de órdenes Bourne debutó con la versión 7 de Unix en 1979. Contaba con funciones como el control de flujo, variables y un mejor manejo de cadenas. Estas características facilitaron el uso del intérprete de órdenes como lenguaje de programación, en lugar de como una simple forma de llamar a otros programas.
Aunque el intérprete de órdenes Bourne siguió siendo popular para escribir scripts portables en sistemas Unix, fue sustituido para el uso interactivo por el intérprete de órdenes C, KornShell, Bourne Again shell, también conocido como Bash, y Z shell. Estos shells ofrecían funciones como el historial de comandos y la edición de la línea de comandos, que facilitaban la vida a usuarios y administradores.
KornShell, Bash y Z Shell (de los que hablaremos más adelante) tienen sintaxis influidas por el Bourne Shell.
Puede leer también | Ubuntu Frame: Lanzá nueva shell de Canonical.
Lenguajes de scripting multiplataforma más potentes y con características aún más avanzadas, como Perl y Python, también sustituyeron en gran medida al shell scripting.
Aún así, el shell Bourne es ampliamente conocido y muchos de los scripts suministrados con los programas Linux utilizan su sintaxis para diversas tareas.
El comportamiento del shell Bourne se codificó en el estándar POSIX, por lo que muchos sistemas modernos similares a Unix lo implementan de alguna manera utilizando un shell compatible.
Alternativas modernas al shell Bourne
Existen varias alternativas modernas de código abierto al shell Bourne original en los sistemas Linux. Éstas son algunas de las más conocidas:
1. El intérprete de órdenes Bourne Again (Bash)
El nombre Bourne Again Shell (Bash) es un juego de palabras con Bourne Shell. Esta shell se desarrolló originalmente como un componente del sistema GNU, precediendo 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 en línea de comandos de la que fue pionera KornShell.
Bash es el shell por defecto en muchas distribuciones de Linux y, por tanto, se ha convertido en un estándar de facto por sí mismo.
2. KornShell
KornShell, también conocido como ksh, fue desarrollado originalmente por David Korn, también en los Laboratorios Bell, en la década de 1980. Construido sobre el shell Bourne, KornShell introdujo algunas características adicionales como el 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 utilizar el mecanismo de historial del shell C.
Si necesitabas reeditar un comando emitido previamente, podías usar comandos similares a Vi o Emacs para hacerlo.
Puede leer también | Microsoft anuncia PowerShell 7 para Linux, Windows y Mac
KornShell venía por defecto en algunos sistemas Unix comerciales como Oracle Solaris. Como el KornShell original fue publicado inicialmente por AT&T bajo una licencia propietaria, con el tiempo se publicó una versión de código abierto llamada pdksh.
3. Almquist/Debian Almquist Shell
El shell Almquist fue escrito originalmente por Kenneth Almquist y pretendía ser un reemplazo ligero del shell Bourne. Muchos sistemas BSD lo incluyen como implementación de sh.
Una versión se adaptó a Debian en los años 90 y se conoce como Debian Almquist Shell. Como su nombre indica, es la implementación de sh en los sistemas Debian y Ubuntu.
4. Shell Z
Z shell, o zsh, es uno de los shells más recientes, desarrollado originalmente en 1990 por Paul Falsted. Z shell se ha dado a conocer por sus avanzadas características. Un buen ejemplo es el globbing recursivo, o la capacidad de hacer coincidir comodines en subdirectorios.
Z shell es el shell de inicio de sesión por defecto para macOS y Kali Linux.
Aunque 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 parezca más al shell original.
La principal forma de hacerlo es mediante un enlace simbólico. La mayoría de los sistemas establecerán un enlace simbólico entre /bin/sh y Bash u otro intérprete de órdenes. Cuando se invoca de esta forma, el intérprete de órdenes entra en modo de compatibilidad con el intérprete Bourne.
Puedes ver a qué shell está enlazado /bin/sh con el comando ls:
ls -l /bin/sh
El shell Bourne es uno de los estándares más antiguos para el scripting en sistemas tipo 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, en particular por su enfoque de las variables. Tiene algunas variables únicas que pueden hacer que quieras considerarlo para tu próximo proyecto.