大多数最新的 Linux 发行版都将 bash 作为默认 shell,尽管还有其他(可以说)更好的 shell 可用。
我试图了解这是否是一些没有人想要改变的历史遗留物,或者是否有一些充分的理由使 bash 成为首选?
bsd*_*bsd 24
简短的回答是因为 linux 确实是 GNU/Linux。只有内核是 linux,但提供类 Unix 环境的基本实用程序集合是由GNU提供的,而 GNU shell 是bash
正如我所说,这是简短的回答 ;)
编辑添加一些额外的评论......
让我先说我不是 Unix 历史学家,所以我只能回答恕我直言
几点,首先bash是shell的厨房水槽,就像emacs对于编辑器一样。
在 bash 发布时,没有免费的 ksh 实现,tcsh 是免费的 csh 替代品,但 Stallman 对 csh 进行 shell 编程大发雷霆。
作为交互式 shell,bash 具有出色的历史/命令调用能力,以及从会话到会话的历史保存。它是用于 shell 编程的 sh、bsh、ksh 的替代品,并且是一个不错的交互式 shell。
就像滚下坡的雪球一样,bash 获得了动力和规模。
是的,还有其他几十种贝壳;shell 更适合个人用途或口味,但对于一个人来说,shell bash 做得不错,并且在 20 多年来一直备受关注。
Gil*_*il' 12
Bash 有一些潜在的竞争对手:
/bin/sh. Ash(我的意思是任何一种称为 ash 的松散外壳家族)被设计成小而快,没有交互功能(它仅用于编辑脚本)。灰烬复兴相对较新;在 1990 年代,现有的变体缺乏很多功能。此外,bash 是官方的GNU shell,而 Linux 系统实际上是GNU/Linux:许多核心程序来自 GNU,即使最著名的部分 Linux 内核不是。在它成为事实上的标准时,bash 是众所周知的,拥有官方地位,并拥有一系列不错的功能。
最简单的答案?因为有些东西“必须是”默认的。最明智的默认设置是大多数用户已经习惯的默认设置。从这一点来看,Bash 是一个不错的选择。每个人都有选择自己世界中最好的自由。如果默认值始终满足他们的需要,大多数人会选择使用默认值。