如何在Alpine Linux中安装bash shell

时间:2020-01-09 10:37:06  来源:igfitidea点击:

如何在Alpine Linux LXD(Linux容器)或虚拟机(VM)中安装bash shell?

Alpine Linux随附BusyBox。
它被描述为嵌入式Linux的瑞士军刀。

BusyBox将许多标准UNIX实用程序的微型版本组合到单个小型可执行文件中,包括/bin/sh。
默认情况下,bash不包含在BusyBox和Alpine Linux中。

postmarketOS项目旨在在移动设备上运行,基于Alpine Linux。
许多Docker镜像也基于Alpine,您也可以在基于Docker的镜像中安装bash shell。
本页显示如何使用apk命令在Alpine Linux中安装bash shell。

如何在Alpine Linux中安装bash shell?

安装bash很容易,但这并不意味着到busybox的符号链接消失了。

apk命令的语法如下:

# apk update
# apk upgrade
# apk add bash

输出示例:

(1/4) Installing ncurses-terminfo-base (6.1_p20200118-r4)
(2/4) Installing ncurses-libs (6.1_p20200118-r4)
(3/4) Installing readline (8.0.1-r0)
(4/4) Installing bash (5.0.11-r1)
Executing bash-5.0.11-r1.post-install
Executing busybox-1.31.1-r9.trigger
OK: 11 MiB in 23 packages

使用cat命令获取Alpine Linux上有效登录shell的列表:

# cat `/etc/shells`

输出:

# valid login shells
/bin/sh
/bin/ash
/bin/bash

如何安装bash手册页和其他文档

要安装bash文档,请输入:

# apk add bash-doc

要安装bash自动命令行完成安装,请运行:

# apk add bash-completion

会话示例:如何在Alpine Linux上运行bash

如何将bash设置为登录shell

要将bash用作shell,只需键入bash:

$ bash

要从主机登录到Alpine Linux LXD vm,请输入:

$ lxc exec alpine-lxd-vm-name-here bash

可以使用以下方法将root shell更改为bash shell:

# vi /etc/passwd

查找用户名和默认外壳程序,例如/bin/ash:

root:x:0:0:root:/root:/bin/ash

用/bin/bash替换它:

root:x:0:0:root:/root:/bin/bash

自定义bash外壳

这是使用cat命令显示的示例文件

cat ~/.bashrc

输出示例:

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
export PS1="\[\e[31m\][\[\e[m\]\[\e[38;5;172m\]\u\[\e[m\]@\[\e[38;5;153m\]\h\[\e[m\] \[\e[38;5;214m\]\W\[\e[m\]\[\e[31m\]]\[\e[m\]\$ "

有关更多信息,请参见定制bash shell环境wiki页面。

如何找到bash shell版本

可以键入以下命令:

bash --version

输出示例:

GNU bash, version 5.0.11(1)-release (x86_64-alpine-linux-musl)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

向Alpine Docker镜像添加bash

将以下命令添加到您的Docker配置文件中以安装bash shell:

RUN apk add --no-cache bash