Mac OS X 中的默认 shell 是 bash, ,我通常很乐意使用它。我只是认为这是理所当然的。如果能自动完成就太好了 更多东西, ,不过,我听说过一些好消息 zsh 在这方面。但我真的不想花几个小时摆弄设置来稍微提高我的命令行使用率,因为我在命令行上的生活并没有那么糟糕。

(据我了解, bash 还可以配置为更巧妙地自动完成。这是我不太喜欢的配置。)

将切换到 zsh, ,即使在少数情况下,也能让我的生活更轻松吗?或者,如果您投入时间学习,它只是一个更好的 shell 为什么 更好吗?(例子也很好 :) )


@罗德尼·阿马托 & @火神渴望给出两个分别坚持的好理由 bash 并切换到 zsh. 。看来我得把这两件事都调查清楚了!那好吧 :)

有没有人对争论双方都有意见?

有帮助吗?

解决方案

对于临时使用,您可能最好坚持使用 bash 并仅安装 bash 补全。

安装它非常简单,从以下位置获取 bash-completion-20060301.tar.gz http://www.caliban.org/bash/index.shtml#completion 并提取它

tar -xzvf bash-completion-20060301.tar.gz

然后将 bash_completion/bash_completion 文件复制到 /etc

sudo cp bash_completion/bash_completion /etc

这将提示您输入密码。您可能想要为任何其他完成脚本创建一个 /etc/bash_completion.d 目录(例如我在那里有 git 完成脚本)。

完成此操作后,最后一步是确保主目录中的 .bash_profile 文件已

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

登录时加载完成文件。

要测试它,只需打开一个新终端,然后尝试在 cvs 上完成,它应该会在完成列表中显示 cvs 选项。

其他提示

就我个人而言,我喜欢 zsh。

一般来说,您可能不会注意到它和 bash 之间的区别,直到您想要快速执行递归通配符之类的操作:

  • **/*.c 例如。

或者使用后缀别名将特定的程序与不同的后缀关联起来,这样就可以直接“执行”它们。下面的别名让您可以在提示符下“运行”C 源文件,只需键入 ./my_program.c – 这将完全像您键入一样工作 vim ./my_program.c. 。(相当于双击文件图标。)

  • alias -s c=vim

或者打印今天修改的文件的名称:

  • print *(e:age today now:)

您可能可以在 bash 中完成所有这些操作,但我对 zsh 的经验是,如果我想做某事,我可能可以在 zsh 爱好者。我还找到了这本书'从 Bash 到 Z-Shell'真的很有用。

玩令人难以置信的大量选项也很有趣!

切换到 zsh。您将有权访问:

  1. zmv: :你可以做: zmv '(*).mp3' '$1.wma' 数千个文件。
  2. zcalc: :极其舒适的计算器,比 bc.
  3. zparseopts: :用于解析给脚本的任意复杂选项的单行代码。
  4. autopushd: :你总是可以做 popdcd 更改回之前的目录。
  5. 浮点支持。有时需要它。
  6. 哈希支持。有时它们只是一个关键功能。

如果您只是想使用 ZSH 来更好地完成任务,那么配置非常简单。将其放入 ~/.zshrc 中:

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

然而,ZSH 的所有其他出色功能还是值得一试。上面的例子会给你一个非常简单的提示,并且完成得很好。如果您不想摆弄配置,但想了解 ZSH 可以为您做什么,请 Google 搜索“zshrc”,您将获得一些准备使用的配置来开始使用。

zsh 有一个控制台 GUI 配置的东西。您可以快速轻松地进行设置,而无需摆弄配置文件。我认为您不需要太多时间来设置它,仅使用默认值可能需要 10 秒,所以请继续尝试。

Staale 谈论的是一个类似向导的程序 (CUI),它会在您第一次运行 zsh 时自动运行。只需回答一些问题,查看/更改默认值及其为您配置的即可。

IBMdeveloperWorks 拥有有关 zsh 的丰富资源。

我还没有使用过非常高级的功能,到目前为止我还没有遇到严重的差异,这应该会妨碍来自 bash 的人。

一些例子:

  • !?图案u003CTab>将在历史记录匹配模式中自动完成到最后一个命令。很有用。

  • 您可以在RHS上配置提示。一种用途是在左侧保持固定宽度提示,以便所有命令都很好地对齐,同时显示PWD(或任何可变宽度)作为右手侧提示。

  • 您可以重定向来自多个文件的输入(尚未尝试此操作):猫 < 文件 1 < 文件 2 < 文件 3

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top