值得转换到 zsh 以便随意使用吗?

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

(据我所知,bash也可以配置为自动完成更聪明。这是我不太喜欢的配置。)

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


罗德尼 · 阿马托(Rodney Amato) & @ Vulcan Eager 给出两个很好的理由分别坚持 bash和切换到 zsh。看来我得两个都调查一下了!哦,好吧

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

71657 次浏览

Zsh 有一个控制台 GUI 配置。您可以非常快速和轻松地设置它,而不必操纵配置文件。我不认为您需要很多时间来设置它,可能只需要10秒钟使用默认设置,所以请继续尝试。

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

IBMdeveloperWorks 有关于 zsh 的大量资源。

我没有使用非常高级的特性,到目前为止,我还没有遇到严重的差异,应该阻碍从 bash 的人。

一些例子:

    < li > < p > ! ? pattern < Tab > 将自动完成到 历史上最后一条命令 图案,非常有用 控件上配置提示符 一个用途是保持一个固定的 左侧的宽度提示符 所以所有命令都排成一行 显示 pwd (或任何 可变宽度)作为右手 侧面提示
  • 您可以从多个文件重定向输入(尚未尝试此操作) : cat < file1 < file2 < file3

对于非正式的使用,您最好还是坚持使用 bash,只需安装 bash 完成即可。

安装它非常简单,从 http://www.caliban.org/bash/index.shtml#completion获取 bash-complete-20060301.tar.gz 并使用

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

然后使用

sudo cp bash_completion/bash_completion /etc

它会提示你输入密码。您可能需要使用/etc/bash _ complete。D 目录中的任何其他完成脚本(例如,我在那里有 git 完成脚本)。

完成此操作后,最后一步是确保您的主目录中的. bash _ profile 文件具有

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

登录时加载完成文件。

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

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

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

  • 例如 **/*.c

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

  • alias -s c=vim

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

  • print *(e:age today now:)
您可能可以在 bash 中完成所有这些事情,但是我使用 zsh 的经验是,如果有我想要做的事情,我可以在 Zsh 爱好者中找到它。 我还发现《 从 Bash 到 Z-Shell》这本书真的很有用

玩的头脑令人难以置信的大量选项是好玩的太多!

如果您想使用 ZSH 的全部目的是为了更好地完成,那么配置非常简单。把这个放在你的 ~/。Zshrc:

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

不过,还是值得一看 ZSH 的其他所有优秀特性。上面的例子将提供一个非常简单的提示,并且具有很好的完成性。如果您不想改变配置,但是想看看 ZSH 能为您做些什么,那么可以通过谷歌搜索“ zhrc”,您就可以准备好使用配置来开始工作了。

切换到 zsh。您可以访问:

  1. 你可以做: zmv '(*).mp3' '$1.wma'为数千个文件。
  2. 非常舒适的计算器,比 bc好。
  3. zparseopts: 一行程序,用于解析给出给脚本的任意复杂选项。
  4. autopushd: 您总是可以在 cd之后执行 popd,以便更改回以前的目录。
  5. 浮点支持。时不时地需要浮点支持。
  6. 散列表支持。有时它们只是一个关键特性。