Unix shell 的比较

And*_*ite 9 linux unix shell

在主要的 Unix shell(bash、ksh、tcsh、zsh 等?)中,是否有任何令人信服的理由来使用它们?

  • 哪个是最具交互性/命令行友好的?
  • 哪个最有利于/直观地编写脚本?
  • 有没有一个 shell 提供而其他人没有的主要内置功能?
  • 这些 shell 中的任何一个真的适用于一种类型的功能,而不适用于另一种吗?或者他们都非常全面/灵活?
  • 这只是个人喜好的问题吗?

如果有人愿意,我可以制作这个社区维基。

var*_*tec 17

当前的:

  • bash— Bourne 又是 shell,大多数 Linux 发行版中的默认 shell。体面的功能;
  • zsh — 功能最丰富,但仍然很少使用;
  • ksh — Solaris、AIX 和其他少数 unice 中的默认 shell;
  • tcsh — 各种 *BSD 风格的 unices 中的默认 shell;

历史性:

  • sh— 原始的 Bourne 外壳(1977 年发布)。已被 bash 淘汰;
  • csh— 原始 C shell(1978 年发布)。被 tcsh 和 ksh 淘汰;

请注意,bash、ksh 和 zsh 派生自 sh 语法,而 tcsh 派生自 csh 语法。这是两种完全不同的语法。

功能图表(维基)。

  • /bin/sh 并不总是指向 /bin/bash 的符号链接 (2认同)

Pet*_*ton 9

fish是一个新的 shell,它可能比其他的更有趣,不是因为它一定有更多的功能,而是因为它们默认就可以工作,并且因为 fish 追求可用性。

一些屏幕截图(1234)足以给出总体思路。

鱼现在是我工作时 Mac 上的默认 shell。去搞清楚。