fbpx
Wikipedia

Almquist shell

Almquist shell (also known as A Shell, ash and sh) is a lightweight Unix shell originally written by Kenneth Almquist in the late 1980s. Initially a clone of the System V.4 variant of the Bourne shell, it replaced the original Bourne shell in the BSD versions of Unix released in the early 1990s.

Almquist shell
Developer(s)Kenneth Almquist
Initial releaseMay 30, 1989; 34 years ago (1989-05-30)
Written inC
Operating systemUnix-like
PlatformCross-platform
TypeUnix shell
Websitewww.in-ulm.de/~mascheck/various/ash/ 

History edit

ash was first released via a posting to the comp.sources.unix Usenet news group, approved and moderated by Rich Salz on 30 May 1989. It was described as "a reimplementation of the System V shell [with] most features of that shell, plus some additions".[1]

Fast, small, and virtually compatible[citation needed] with the POSIX standard's specification of the Unix shell, ash did not provide line editing or command history mechanisms, because Almquist felt that such functionality should be moved into the terminal driver. However, current variants support it.

The following is extracted from the ash package information from Slackware v14:

ash (Kenneth Almquist's ash shell)

A lightweight (92K) Bourne compatible shell. Great for machines with low memory, but does not provide all the extras of shells like bash, tcsh, and zsh. Runs most shell scripts compatible with the Bourne shell. Note that under Linux, most scripts seem to use at least some bash-specific syntax. The Slackware setup scripts are a notable exception, since ash is the shell used on the install disks. NetBSD uses ash as its /bin/sh.

Myriad forks have been produced from the original ash release.[2] These derivatives of ash are installed as the default shell (/bin/sh) on FreeBSD, NetBSD, DragonFly BSD, MINIX, and in some Linux distributions. MINIX 3.2 used the original ash version, whose test feature differed from POSIX.[3] That version of the shell was replaced in MINIX 3.3. Android used ash until Android 4.0, at which point it switched to mksh.[4]

Dash edit

Debian Almquist shell (DASH)
Developer(s)Herbert Xu
Initial releaseJuly 15, 1997; 26 years ago (1997-07-15)
Written inC
Operating systemLinux, Android
TypeUnix shell
Websitegondor.apana.org.au/~herbert/dash/

In 1997 Herbert Xu ported ash from NetBSD to Debian Linux. In September 2002, with release 0.4.1, this port was renamed to Dash (Debian Almquist shell). Xu's main priorities are POSIX conformance and slim implementation.[2]

Like its predecessor, Dash implements support for neither internationalization and localization nor multi-byte character encoding (both required in POSIX).[citation needed] Line editing and history support based on GNU Readline is optional (--with-libedit).

Adoption in Debian and Ubuntu edit

Because of its slimness, Ubuntu decided to adopt Dash as the default /bin/sh[5][6] in 2006. The reason for using Dash is faster shell script execution,[7] especially during startup of the operating system, compared to previous versions of Debian and Ubuntu that used Bash for this purpose, although Bash is still the default login shell for interactive use.[8] Dash became the default /bin/sh in Ubuntu starting with the 6.10 release in October 2006.[6] Dash replaced Bash and became the default /bin/sh in Debian 6 (Squeeze).[5]

A result of the shift is that many shell scripts were found making use of Bash-specific functionalities ("bashisms") without properly declaring it in the shebang line.[9][10] The problem was first spotted in Ubuntu and the Ubuntu maintainers decided to make all the scripts comply with the POSIX standard. The changes were later upstreamed to Debian, which soon adopted Dash as its default /bin/sh too. As a result, all /bin/sh scripts in Debian and Ubuntu are guaranteed to be POSIX-compliant, save for the extensions merged into Dash for convenience (local, echo -n, test -a / -o).[11][12] A similar transition has happened in Slackware Linux, although their version of ash is only partially based on Dash.[2]

Embedded Linux edit

Ash (mainly the Dash fork) is also fairly popular in embedded Linux systems. Dash version 0.3.8-5 was incorporated into BusyBox, the catch-all executable often employed in this area, and is used in distributions like DSLinux, Alpine Linux, Tiny Core Linux and Linux-based router firmware such as OpenWrt, Tomato and DD-WRT.

See also edit

References edit

  1. ^ Almquist, Kenneth (May 30, 1989). Rich Salz (ed.). "v19i001: A reimplementation of the System V shell, Part01/08". Usenet newsgroup, comp.sources.unix.
  2. ^ a b c Mascheck, Sven. "Ash (Almquist Shell) Variants". www.in-ulm.de.
  3. ^ Thomas E. Dickey (2015). "TEST versus Portability". Retrieved March 1, 2020.
  4. ^ Elliott Hughes (2018-06-20). "Android's shell and utilities". Retrieved 2020-02-29.
  5. ^ a b "Non-interactive Shell". Debian Wiki. 2020-01-13. Retrieved 2020-02-29.
  6. ^ a b "Dash as /bin/sh". Ubuntu Wiki. 2017-12-16. Retrieved 2020-02-29.
  7. ^ Neal Krawetz (2011). Ubuntu: Powerful Hacks and Customizations. John Wiley & Sons. p. 178. ISBN 9781118080382.
  8. ^ Christopher Negus; Francois Caen (2011). Ubuntu Linux Toolbox. John Wiley & Sons. p. 49. ISBN 9781118079140.
  9. ^ Egil Hasting (2006-09-20). "Script that are using bash could be broken with the new symlink". Launchpad. Retrieved 2020-02-29.
  10. ^ comotion (2007-09-21). "dash as #!/bin/sh introduces countless incompatibilities". Launchpad. Retrieved 2020-02-29.
  11. ^ "10. Files". Debian Policy Manual v4.5.0.2.
  12. ^ checkbashisms(1) – Linux General Commands Manual

External links edit

almquist, shell, also, known, shell, lightweight, unix, shell, originally, written, kenneth, almquist, late, 1980s, initially, clone, system, variant, bourne, shell, replaced, original, bourne, shell, versions, unix, released, early, 1990s, developer, kenneth,. Almquist shell also known as A Shell ash and sh is a lightweight Unix shell originally written by Kenneth Almquist in the late 1980s Initially a clone of the System V 4 variant of the Bourne shell it replaced the original Bourne shell in the BSD versions of Unix released in the early 1990s Almquist shellDeveloper s Kenneth AlmquistInitial releaseMay 30 1989 34 years ago 1989 05 30 Written inCOperating systemUnix likePlatformCross platformTypeUnix shellWebsitewww wbr in ulm wbr de wbr mascheck wbr various wbr ash wbr Contents 1 History 2 Dash 2 1 Adoption in Debian and Ubuntu 2 2 Embedded Linux 3 See also 4 References 5 External linksHistory editash was first released via a posting to the comp sources unix Usenet news group approved and moderated by Rich Salz on 30 May 1989 It was described as a reimplementation of the System V shell with most features of that shell plus some additions 1 Fast small and virtually compatible citation needed with the POSIX standard s specification of the Unix shell ash did not provide line editing or command history mechanisms because Almquist felt that such functionality should be moved into the terminal driver However current variants support it The following is extracted from the ash package information from Slackware v14 ash Kenneth Almquist s ash shell A lightweight 92K Bourne compatible shell Great for machines with low memory but does not provide all the extras of shells like bash tcsh and zsh Runs most shell scripts compatible with the Bourne shell Note that under Linux most scripts seem to use at least some bash specific syntax The Slackware setup scripts are a notable exception since ash is the shell used on the install disks NetBSD uses ash as its bin sh Myriad forks have been produced from the original ash release 2 These derivatives of ash are installed as the default shell bin sh on FreeBSD NetBSD DragonFly BSD MINIX and in some Linux distributions MINIX 3 2 used the original ash version whose test feature differed from POSIX 3 That version of the shell was replaced in MINIX 3 3 Android used ash until Android 4 0 at which point it switched to mksh 4 Dash editDebian Almquist shell DASH Developer s Herbert XuInitial releaseJuly 15 1997 26 years ago 1997 07 15 Written inCOperating systemLinux AndroidTypeUnix shellWebsitegondor wbr apana wbr org wbr au wbr herbert wbr dash wbr In 1997 Herbert Xu ported ash from NetBSD to Debian Linux In September 2002 with release 0 4 1 this port was renamed to Dash Debian Almquist shell Xu s main priorities are POSIX conformance and slim implementation 2 Like its predecessor Dash implements support for neither internationalization and localization nor multi byte character encoding both required in POSIX citation needed Line editing and history support based on GNU Readline is optional with libedit Adoption in Debian and Ubuntu edit Because of its slimness Ubuntu decided to adopt Dash as the default bin sh 5 6 in 2006 The reason for using Dash is faster shell script execution 7 especially during startup of the operating system compared to previous versions of Debian and Ubuntu that used Bash for this purpose although Bash is still the default login shell for interactive use 8 Dash became the default bin sh in Ubuntu starting with the 6 10 release in October 2006 6 Dash replaced Bash and became the default bin sh in Debian 6 Squeeze 5 A result of the shift is that many shell scripts were found making use of Bash specific functionalities bashisms without properly declaring it in the shebang line 9 10 The problem was first spotted in Ubuntu and the Ubuntu maintainers decided to make all the scripts comply with the POSIX standard The changes were later upstreamed to Debian which soon adopted Dash as its default bin sh too As a result all bin sh scripts in Debian and Ubuntu are guaranteed to be POSIX compliant save for the extensions merged into Dash for convenience local echo n test a o 11 12 A similar transition has happened in Slackware Linux although their version of ash is only partially based on Dash 2 Embedded Linux edit Ash mainly the Dash fork is also fairly popular in embedded Linux systems Dash version 0 3 8 5 was incorporated into BusyBox the catch all executable often employed in this area and is used in distributions like DSLinux Alpine Linux Tiny Core Linux and Linux based router firmware such as OpenWrt Tomato and DD WRT See also editComparison of computer shellsReferences edit Almquist Kenneth May 30 1989 Rich Salz ed v19i001 A reimplementation of the System V shell Part01 08 Usenet newsgroup comp sources unix a b c Mascheck Sven Ash Almquist Shell Variants www in ulm de Thomas E Dickey 2015 TEST versus Portability Retrieved March 1 2020 Elliott Hughes 2018 06 20 Android s shell and utilities Retrieved 2020 02 29 a b Non interactive Shell Debian Wiki 2020 01 13 Retrieved 2020 02 29 a b Dash as bin sh Ubuntu Wiki 2017 12 16 Retrieved 2020 02 29 Neal Krawetz 2011 Ubuntu Powerful Hacks and Customizations John Wiley amp Sons p 178 ISBN 9781118080382 Christopher Negus Francois Caen 2011 Ubuntu Linux Toolbox John Wiley amp Sons p 49 ISBN 9781118079140 Egil Hasting 2006 09 20 Script that are using bash could be broken with the new symlink Launchpad Retrieved 2020 02 29 comotion 2007 09 21 dash as bin sh introduces countless incompatibilities Launchpad Retrieved 2020 02 29 10 Files Debian Policy Manual v4 5 0 2 checkbashisms 1 Linux General Commands ManualExternal links editOfficial website nbsp dash 1 Linux User Manual User Commands dash 1 Debian General Commands Manual dash 1 FreeBSD General Commands Manual sh 1 NetBSD General Commands Manual Retrieved from https en wikipedia org w index php title Almquist shell amp oldid 1157574639, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.