Ksh 特性并入 Zsh?

Kaz*_*ark 8 shell ksh zsh

一段时间以来,我一直是 Bash 的用户。我现在想学习至少另一种 shell,所以我一直在学习 Korn Shell。然而,看起来 Ksh 已经近 20 年没有重大更新,而且我已经读到 Zsh 合并了它的功能。我一直在阅读 StackExchange 网络上的许多 shell 比较问题,但还没有找到答案:Zsh 没有包含 Korn Shell 的功能吗?如果有,它们是什么?

bah*_*mat 5

这是关于命令外壳比较维基百科文章

据此, ksh 唯一没有 zsh 的功能是用户定义的“类型”的命名参数。可能还有其他的,因为那篇文章不是一个详尽的列表,特别是对于晦涩的功能。

反过来说,你的问题的答案可以写一本书(可能是本书)。

Zsh 有许多 ksh 没有的功能。一些流行的是命令堆栈目录堆栈历史共享rpprompt

  • 命令堆栈是当您键入命令并意识到应该先运行另一个命令时。只需将当前行发送到命令堆栈,运行另一个命令,然后将命令从堆栈中弹出。您可以多次执行此操作。(zsh 是我所知道的唯一提供此功能的 shell)。
  • 目录堆栈(又名pushd/ popd)是当您要连续更改目录然后以相反的顺序 cd 返回时。(许多 shell 都提供了这一点,包括 bash)。
  • 历史共享是每个打开的 shell 共享一个共同历史的地方。在一个窗口中执行命令,切换到另一个窗口,它将在您的历史记录中可用。
  • rpprompt就像你的提示一样,除了它是正确的。许多人喜欢将cwddate放在rprompt.

以下是 Stack Exchange 网站上关于 zsh 的一些讨论: