Stand-alone shell

Stand-alone shell (sash) is a Unix shell designed for use in recovering from certain types of system failures.

sash
Screenshot of the sash shell
Developer(s)David Bell
Stable release
v3.8 March 2014
Operating systemUnix-like
TypeEmbedded
Websitemembers.tip.net.au/~dbell/

The built-in commands of sash have all libraries linked statically, so unlike most shells on Linux, the standard UNIX commands do not rely on external libraries. For example, the copy command (cp) requires libc.so and ld-linux.so when built from GNU Core Utilities on Linux. If any of these libraries get corrupted, the coreutils cp command would not work; however, in sash, the built-in command, cp, would be unaffected.

In earlier times, most critical commands (including shells) in /sbin or even /bin were statically linked for this purpose, whereas in /usr/sbin and /usr/bin you would find the more feature-rich versions that were dynamically linked. This is not common anymore and as such, statically linked shells with built-in commands have become more important.

Sash has the following built-in commands:

ar, chattr, chgrp, chmod, chown, cmp, cp, dd, echo, ed, exec, grep, file, find, gunzip, gzip, kill, losetup, ln, ls, lsattr, mkdir, mknod, rmdir, sum, sync, tar, touch, umount, where

The Sash shell has also been ported to work with Android[1]in a terminal-interface.

sash-plus-patches

sash-plus-patches is a collection of patches for sash. The key features are the chroot, pivot root, and losetup commands. However, these functions are available in newer versions of sash. These functions provide interfaces to the respective Linux system calls. They are especially useful when sash is used in an initial ramdisk ("initrd") environment. In addition, simple shell variable expansion support has been added; e.g., the variable "$(VAR)" is replaced by the content of the environment variable "VAR".

Some Linux distributions, such as Debian and Slackware (via SlackBuilds.org), have this available.

gollark: Anyway, the TIO thing is *mostly* working (you can try it now, old-ABR is down for testing right now) but for some reason the typing thing is a bit weird.
gollark: ... never mind
gollark: It works fine in an online regex tester, but not *my actual code*.
gollark: IT WORKS NOT
gollark: STUPID REGEX

See also

References

Sources

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.