Dash
Dash is a minimalist POSIX-compliant shell. It can be much faster than Bash, and takes up less memory when in use. Most POSIX compliant scripts specify /bin/sh
at the first line of the script, which means it will run /bin/sh
as the shell, which by default in Arch is a symlink to /bin/bash
.
Contents
Installation
Install dash from the official repositories.
Use DASH as default shell
You can re-symlink /bin/sh
to /bin/dash
, which can improve system performance, but first you must verify that none of the scripts that aren't explicitly #!/bin/bash
scripts are safely POSIX compliant and do not require any of Bash's features.
Identifying bashisms
Features of bash that aren't included in Dash ('bashisms') will not work without being explicitly pointed to /bin/bash
. The following instructions will allow you to find any scripts that may need modification.
Install checkbashismsAUR from the AUR.
Common places to check
- Installed scripts with a
#!/bin/sh
shebang:
$ checkbashisms -f -p $(grep -IrlE '^#! ?(/usr)?/bin/(env )?sh' /usr/bin)
Relinking /bin/sh
Once you have verified that it won't break any functionality, it should be safe to relink /bin/sh
. To do so use the following command:
# ln -sfT dash /bin/sh
Updates of Bash could overwrite /bin/sh
. To prevent this, add the following lines to the [options]
section of /etc/pacman.conf
:
NoUpgrade = usr/bin/sh NoExtract = usr/bin/sh