Almquist shell (también conocido como A Shell , ash y sh ) es un shell ligero de Unix escrito originalmente por Kenneth Almquist a finales de la década de 1980. Inicialmente un clon de la variante System V.4 del shell Bourne , reemplazó al shell Bourne original en las versiones BSD de Unix lanzadas a principios de la década de 1990.
Desarrollador (es) | Kenneth Almquist |
---|---|
Versión inicial | 30 de mayo de 1989 |
Escrito en | C |
Sistema operativo | Tipo Unix |
Plataforma | Multiplataforma |
Tipo | Shell de Unix |
Sitio web | www |
Historia
ash se lanzó por primera vez a través de una publicación en el grupo de noticias de Usenet comp .sources.unix , aprobado y moderado por Rich Salz el 30 de mayo de 1989. Se describió como "una reimplementación del shell System V [con] la mayoría de las características de ese shell, más algunas adiciones ". [1]
Rápido, pequeño y virtualmente compatible [ cita requerida ] con la especificación del estándar POSIX del shell de Unix, ash no proporcionó mecanismos de edición de línea o historial de comandos , porque Almquist sintió que dicha funcionalidad debería trasladarse al controlador de terminal . Sin embargo, las variantes actuales lo admiten.
Lo siguiente se extrae de la información del paquete ash de Slackware v14:
ceniza (caparazón de ceniza de Kenneth Almquist)
Una carcasa liviana (92K) compatible con Bourne. Excelente para máquinas con poca memoria, pero no proporciona todos los extras de shells como bash , tcsh y zsh . Ejecuta la mayoría de los scripts de shell compatibles con Bourne. Tenga en cuenta que en Linux, la mayoría de los scripts parecen utilizar al menos alguna sintaxis específica de bash. Los scripts de instalación de Slackware son una excepción notable, ya que ash es el shell utilizado en los discos de instalación. NetBSD usa ash como su / bin / sh.
Se han producido innumerables horquillas a partir del lanzamiento de ceniza original. [2] Estos derivados de ash se instalan como el shell predeterminado ( /bin/sh
) en FreeBSD , NetBSD , DragonFly BSD , MINIX y en algunas distribuciones de Linux . MINIX 3.2 utilizó la versión ceniza original, cuya característica de prueba difería de POSIX. [3] Esa versión del shell fue reemplazada en MINIX 3.3. Android usó ash hasta Android 4.0 , momento en el que cambió a mksh . [4]
pizca
Desarrollador (es) | Herbert Xu |
---|---|
Versión inicial | 15 de julio de 1997 |
Escrito en | C |
Sistema operativo | Linux , Android |
Tipo | Shell de Unix |
Sitio web | gondor |
En 1997, Herbert Xu se trasladó ash
de NetBSD a Debian Linux . En septiembre de 2002, con la versión 0.4.1, se cambió el nombre de este puerto a dash
( Debian Almquist shell ). Las principales prioridades de Xu son la conformidad con POSIX y la implementación reducida. [2]
Al igual que su predecesor, dash no implementa soporte para internacionalización y localización ni codificación de caracteres multibyte (ambos requeridos en POSIX). La edición de línea y el soporte de historial basado en GNU Readline es opcional ( --with-libedit
).
Adopción en Debian y Ubuntu
Debido a su delgadez, Ubuntu decidió adoptar el tablero como predeterminado /bin/sh
[5] [6] en 2006. La razón para usar el tablero es una ejecución más rápida del script de shell , [7] especialmente durante el inicio del sistema operativo, en comparación con versiones anteriores de Debian y Ubuntu que usaban bash para este propósito, aunque bash sigue siendo el shell de inicio de sesión predeterminado para uso interactivo. [8] Dash se convirtió en el predeterminado /bin/sh
en Ubuntu a partir de la versión 6.10 en octubre de 2006. [6] Dash reemplazó a ash y se convirtió en el predeterminado /bin/sh
en Debian 6 (Squeeze). [5]
Un resultado del cambio es que se encontraron muchos scripts de shell haciendo uso de funcionalidades específicas de bash ("bashisms") sin declararlo correctamente en la línea shebang . [9] [10] El problema se detectó por primera vez en Ubuntu y los mantenedores de Ubuntu decidieron hacer que todos los scripts cumplieran con el estándar POSIX . Los cambios se enviaron posteriormente a Debian, que pronto adoptó el tablero como predeterminado /bin/sh
también. Como resultado, todas las /bin/sh
secuencias de comandos en Debian y Ubuntu están garantizados para ser compatible con POSIX, salvo por las extensiones fusionado en dash
por conveniencia ( local
, echo -n
, test -a / -o
). [11] [12] Ha ocurrido una transición similar en Slackware Linux, aunque su versión de ash
se basa solo parcialmente en dash
. [2]
Linux integrado
Ash (principalmente la dash
bifurcación) también es bastante popular en los sistemas Linux integrados. dash
la versión 0.3.8-5 se incorporó en BusyBox , el ejecutable general que se emplea a menudo en esta área, y se usa en distribuciones como DSLinux, Alpine Linux , Tiny Core Linux y firmware de enrutador basado en Linux como OpenWrt , Tomato y DD- WRT .
Ver también
- Comparación de carcasas de computadora
Referencias
- ^ Almquist, Kenneth (30 de mayo de 1989). Rich Salz (ed.). "v19i001: Una reimplementación del shell System V, Part01 / 08" . Grupo de noticias Usenet , comp.sources.unix.
- ^ a b c Mascheck, Sven. "Variantes de Ash (Almquist Shell)" . www.in-ulm.de .
- ^ Thomas E. Dickey (2015). "TEST versus Portabilidad" . Consultado el 1 de marzo de 2020 .
- ^ Elliott Hughes (20 de junio de 2018). "Shell y utilidades de Android" . Consultado el 29 de febrero de 2020 .
- ^ a b "Shell no interactivo" . Wiki de Debian . 2020-01-13 . Consultado el 29 de febrero de 2020 .
- ^ a b "Guión como / bin / sh" . Wiki de Ubuntu . 2017-12-16 . Consultado el 29 de febrero de 2020 .
- ^ Neal Krawetz (2011). Ubuntu: Hacks y personalizaciones poderosos . John Wiley e hijos . pag. 178. ISBN 9781118080382.
- ^ Christopher Negus; Francois Caen (2011). Caja de herramientas de Ubuntu Linux . John Wiley e hijos. pag. 49. ISBN 9781118079140.
- ^ Egil Hasting (20 de septiembre de 2006). "El script que usa bash podría romperse con el nuevo enlace simbólico" . Launchpad . Consultado el 29 de febrero de 2020 .
- ^ conmoción (21 de septiembre de 2007). "dash as #! / bin / sh introduce innumerables incompatibilidades" . Launchpad . Consultado el 29 de febrero de 2020 .
- ^ "10. Archivos" . Manual de políticas de Debian v4.5.0.2 .
- ^ - Manual de comandos generales de Linux
enlaces externos
- Página web oficial