Mac OS X中的默认shell是bash
,我通常很乐意使用它。我认为这是理所当然的。如果它自动完成更多的东西会非常好,而且我在这方面听说过zsh
的好消息。但我真的不想花费数小时摆弄设置来提高我的命令行使用量,因为我在命令行上的生活并没有那么糟糕。
(据我所知,bash
也可以配置为更加巧妙地自动完成。这是配置我不是那么热衷。)
即使在少数情况下,切换到zsh
会让我的生活更轻松吗?或者,如果你花时间学习为什么它会更好? (例子也很好:)
)
@ Rodney Amato
&安培;
@ Vulcan Eager
给出两个很好的理由分别坚持bash
并切换到zsh
。看起来我要调查两个!好吧:)
是否有人对争论的双方都有意见?
答案 0 :(得分:84)
就个人而言,我喜欢zsh。
一般来说,你可能不会注意到它和bash之间的区别,直到你想快速做一些像递归通配:
**/*.c
。或者使用后缀别名将特定的prog与不同的后缀相关联,以便您可以直接“执行”它们。通过以下别名,您只需键入./my_program.c
即可在提示符处“运行”C源文件 - 这与您键入vim ./my_program.c
完全相同。 (等同于双击文件图标的等效。)
alias -s c=vim
或打印今天修改的文件名称:
print *(e:age today now:)
你可以用bash做所有这些事情,但我对zsh的经验是,如果有我想做的事情,我可以在zsh-lovers中找到它。 我还发现“From Bash to Z-Shell”这本书非常有用。
玩弄令人难以置信的大量选项也很有趣!
答案 1 :(得分:68)
对于临时使用,你最好坚持使用bash并且只是安装bash完成。
安装它非常简单,从http://www.caliban.org/bash/index.shtml#completion抓取bash-completion-20060301.tar.gz并用
提取它tar -xzvf bash-completion-20060301.tar.gz
然后使用
将bash_completion / bash_completion文件复制到/ etcsudo 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选项。
答案 2 :(得分:38)
切换到zsh。您将有权访问:
zmv
:您可以:zmv '(*).mp3' '$1.wma'
处理数千个文件。zcalc
:非常舒适的计算器,优于bc
。zparseopts
:用于解析为脚本提供的任意复杂选项的单行程序。autopushd
:popd
之后,您可以随时cd
更改回上一个目录。答案 3 :(得分:13)
如果您想要更好地使用ZSH,那么配置非常简单。把它放在你的〜/ .zshrc:
中autoload -U zutil # [1]
autoload -U compinit # [2]
autoload -U complist # [3]
compinit
然而,值得查看ZSH的所有其他强大功能。上面的例子将为您提供一个非常简单的提示,并且完成得很好。如果您不想摆弄配置,但希望看到ZSH可以为您做什么,谷歌为“zshrc”,您将获得一些准备使用的配置来开始。
答案 4 :(得分:6)
zsh有一个控制台gui配置的东西。您可以非常快速,轻松地进行设置,而无需使用配置文件。我认为你不需要太多时间进行设置,只需使用默认值就可能需要10秒钟,所以请继续尝试。
答案 5 :(得分:2)
Staale正在谈论类似于程序的向导(CUI),它会在您第一次运行zsh时自动运行。只需回答一些问题,查看/更改默认值及其为您配置的内容。
IBM developerWorks在zsh上有很多资源。
我没有使用非常先进的功能,到目前为止,我没有遇到严重的差异,这些差异会阻碍来自bash的人。
一些例子:
!?图案<标签>将自动完成 历史匹配中的最后一个命令 图案。非常有用。
您可以在上面配置提示 RHS。一个用途是保持固定 左侧的宽度提示 所以所有的命令都排好了 显示密码(或任何东西) 可变宽度)作为右手 侧面提示。
您可以重定向多个文件的输入(但要尝试此操作):cat< file1< file2< file3