值得换用zsh以供随意使用?

Mac OS X中的默认shell是bash ,我一般很乐意使用它。 我只是认为理所当然。 如果它自动完成更多的东西 ,那将是非常好的,而且我在这方面已经听到了有关zsh好消息。 但是我并没有真正的意图花费数小时来摆弄设置来改善我的命令行使用率,因为我在命令行中的生活并不是那么糟糕。

(据我所知, bash也可以configuration为自动完成更聪明的configuration,我并不是那么热衷)。

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


@ Rodney Amato &@ Vulcan Eager给出了两个很好的理由分别坚持bash和切换到zsh 。 看起来我必须同时调查! 哦,好:)

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

对于随意使用,你可能更好地坚持与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文件复制到/ etc中

 sudo cp bash_completion/bash_completion /etc 

这将提示您input密码。 你可能会想要为/etc/bash_completion.d目录创build任何额外的完成脚本(例如我在那里有git完成脚本)。

完成这一步后,最后一步是确保主目录中的.bash_profile文件具有

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

在它login时加载完成文件。

要testing它只是打开一个新的terminal,并尝试在CVS上完成,它应该显示完成列表中的CVS选项。

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

一般来说,你可能不会注意到它和bash之间的区别,直到你想快速地做类似recursion通配的事情:

  • 例如**/*.c

或者使用后缀别名来将特定的prog与不同的后缀关联起来,这样就可以直接“执行”它们。 下面的别名可以让你在提示符下“运行”一个C源代码文件,只需input./my_program.c – 这就像你inputvim ./my_program.c 。 (相当于双击文件图标的sorting。)

  • alias -sc=vim

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

  • print *(e:age today now:)

你可以用bash来做所有这些事情,但是我对zsh的经验是,如果有什么我想要做的,我可以在zsh-lovers中find它。 我也发现这本书“ 从Bash到Z-Shell ”真的很有用。

玩弄大量的select的头脑太好玩了!

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

  1. zmv :你可以做: zmv '(*).mp3' '$1.wma'成千上万的文件。
  2. zcalc :非常舒适的计算器,比bc
  3. zparseopts :parsing赋予脚本的任意复杂选项的单行程序。
  4. autopushd :你可以在cd之后随时popd回到你以前的目录。
  5. 浮点支持。 这是不时需要的。
  6. 哈希支持。 有时他们只是一个关键的function。

如果你想使用ZSH来更好地完成,configuration是非常简单的。 把它放在你的〜/ .zshrc中:

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

不过,值得一提的是ZSH的其他强大function。 上面的例子会给你一个相当简单的提示,很好的完成。 如果你不想摆弄configuration,但想看看ZSH能为你做些什么,谷歌的“zshrc”,你会得到一些准备使用configuration开始。

  • [1]:http: //zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fzutil-Module
  • [2]:http: //zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization
  • [3]:http: //zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcomplist-Module

zsh有一个控制台guiconfiguration的东西。 您可以快速轻松地进行设置,而无需摆弄configuration文件。 我不认为你需要很多时间来设置它,大概只需要10秒钟就可以使用默认设置,所以请继续尝试。

Staale正在讨论一个像程序的向导(CUI),它会在您第一次运行zsh时自动运行。 只需回答一些问题,查看/更改默认值及其configuration。

IBM developerWorks在zsh上有很多资源。

我没有使用非常先进的function,到目前为止,我还没有遇到严重的分歧,应该阻止来自bash的人。

一些例子:

  • !?pattern <Tab>会自动完成历史匹配模式中的最后一个命令。 很有用。

  • 您可以在RHS上configuration提示。 一个用途是在左侧保持一个固定的宽度提示,所以所有的命令都很好地排列,同时显示pwd(或任何可变宽度)作为右侧提示。

  • 你可以redirect来自多个文件的input(但是要试试这个):cat <file1 <file2 <file3