Answers:
当前:
bash
再次使用Bourne shell,这是大多数Linux发行版中的默认shell。体面的功能;zsh
—功能最丰富,但仍很少使用;ksh
— Solaris,AIX和其他一些unice中的默认shell;tcsh
—各种* BSD风格的unice中的默认外壳;历史性:
sh
-原始的伯恩贝壳(1977年发行)。被bash淘汰;csh
—原始的C shell(1978年发布)。被tcsh和ksh淘汰;请注意,bash,ksh和zsh源自sh语法,而tcsh源自csh语法。这是两种完全不同的语法。
我建议您很好地了解bash,因为它是最常见的一种(通常是Linux的默认设置)。就个人而言,我喜欢zsh作为我的交互式外壳。它具有出色的完成功能。例如,您可以设置主机列表,当您执行ssh Ser [tab]之类的操作时,它将知道尝试使用Tab键自动完成其中一台主机。它还具有递归的gloglo,因此,如果要在当前目录和子目录中找到所有jpeg文件,可以使用ls -ld **/*.jpg
。zsh(搜索人们的.zshrc文件)有很多有趣的功能,您可以将其设置为“与bash兼容”,因此很容易在两者之间进行切换。如果将其与GNU屏幕结合使用,您可能会发现使用命令行非常愉快。
不要忘记您的其他问题最常见的Unix / Linux shell-出于某种原因,最受欢迎的shell可能最受欢迎;-)
值得一提的是,大多数人不会经常在shell之间切换,因此很难对各种选项进行全面的比较。您将更有可能看到不同的人拥护他们最喜欢的贝壳的优点。从对不同Shell的了解中,我几乎没有听说过,它们都提供了一些相同的基本功能(例如I / O重定向,命令历史记录等),因此个人喜好可能是一个很大的组成部分。