跳转至

选择 shell

目前最流行的 shell 程序是 bash,全称 "Bourne-Again shell",它是很多「Linux 发行版」默认的「登录 shell」,此外还有其他几款知名的 shell:

  • Bourne shell:曾经最流行的 shell,bash 的名字来自于它。
  • ash (Almquist shell):一款 BSD 许可的 Bourne shell 替代产品,体积小巧,通常在资源受限的环境中使用。
  • dash (Debian Almquist shell):debian 版本的 ash。
  • zsh (Z shell):目前很流行的一款 shell,它在 Bourne shell 的基础上做了很多改进,并包含 bash 和其他一些 shell 的功能。2019年10月发布的 macOS Catalina 使用 zsh 作为默认 shell。
  • Busybox: 它将大量的 Unix 工具集成在一起,其中包括 shell 程序,用的是 ash (Almquist shell)。

以上这些 shell 均符合 POSIX 规范,在不同 shell 之间切换是受支持的。但使用某款 shell 增强的功能,可能在其他 shell 上不受支持。

Note

本书使用 bash 作为「默认 shell」。

切换 shell

要切换到其他 shell,直接运行该程序即可,例如:

$  # 从 bash 切换到 zsh
$  zsh
$
$  # 退出 zsh,返回到 bash
linux-20@sdeb ~ % exit
$ 

/etc/shells 登记了可用的登录 shell,echo $SHELL 查看「默认 shell」:

$  cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
$
$  echo $SHELL
/bin/bash

usermod 或者 chsh 可修改「默认 shell」:

usermod -s /bin/zsh linux-20
chsh    -s /bin/zsh linux-20