Alpine Linux comes with BusyBox. It is described as, “The Swiss Army Knife of Embedded Linux.” BusyBox combines tiny versions of many common UNIX utilities into a single small executable including /bin/sh. By default, bash is not included with BusyBox and Alpine Linux. This page shows how to install bash shell in Alpine Linux using the apk command.
How do I install bash shell in Alpine Linux?
It is easy to have bash installed but this does not mean the symlinks to busybox are gone. The syntax is as follows with apk command
# apk update
# apk upgrade
# apk add bash
(1/5) Installing ncurses-terminfo-base (6.0-r7) (2/5) Installing ncurses-terminfo (6.0-r7) (3/5) Installing ncurses-libs (6.0-r7) (4/5) Installing readline (6.3.008-r5) (5/5) Installing bash (4.3.48-r1) Executing bash-4.3.48-r1.post-install Executing busybox-1.26.2-r5.trigger OK: 14 MiB in 21 packages
How to install bash man pages and other docs
To install bash documentation, enter:
# apk add bash-doc
To install bash automatic command line completion install, run:
# apk add bash-completion
How to set bash as login shell
To use bash as a shell just type bash:
To login to alpine Linux LXD vm from host, enter:
$ lxc exec alpine-lxd-vm-name-here bash
One can change root shell to bash shell using the following method:
# vi /etc/passwd
Find user name and the default shell such as /bin/ash:
Replace it with /bin/bash:
Customize bash shell
Here is a sample file:
alias update='apk update && apk upgrade' export HISTTIMEFORMAT="%d/%m/%y %T " export PS1='\u@\h:\W \$ ' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto' source /etc/profile.d/bash_completion.sh
See Customize the bash shell environments wiki page for more info.
You learned how to install bash shell on Alpine Linux along with documents, man pages and configure the bash shell as per your needs. I suggest you read bash man pages/docs here online for more info.