值得切换到zsh以供临时使用吗?
Mac OS X中的默认外壳是bash',我通常很高兴使用它。我只是认为这是理所当然的。不过,如果它能自动完成更多的工作,那将是非常不错的,而且我在这方面听说过有关
zsh`的好消息。但是我真的不愿意花几个小时去修改设置,以将我的命令行使用量提高一点点,因为我在命令行上的生活还不错。
(据我了解,bash
也可以配置为更聪明地自动完成。这是我并不热衷的配置。)
即使在少数情况下,切换到zsh也会使我的生活更轻松吗?或者,如果我们花时间学习它为何更好,那它仅仅是一个更好的外壳? (例子也很好:)
)
罗德尼·阿马托(Rodney Amato)
和
@火神渴望
有两个很好的理由分别坚持使用bash并切换到zsh。看来我必须对两者进行调查!哦,:)
是否有人在辩论双方都有意见?
解决方案
回答
zsh具有控制台gui配置的东西。我们可以快速,轻松地进行设置,而无需摆弄配置文件。我认为我们不需要花费很多时间来设置它,仅使用默认设置就可能需要10秒钟,所以继续尝试一下。
回答
Staale谈论的是类似程序(CUI)的向导,该向导在我们首次运行zsh时会自动运行。只需回答一些问题,即可查看/更改默认值及其配置。
IBM developerWorks在zsh上拥有大量资源。
我没有使用过非常高级的功能,到目前为止,我还没有遇到过严重的差异,这些差异可能会妨碍来自bash的某人。
一些例子:
- !?pattern <Tab>将自动完成到历史记录匹配模式中的最后一条命令。很有用。
- 我们可以在RHS上配置提示。一种用途是在左侧保持固定宽度的提示,以便在将pwd(或者宽度可变的任何内容)显示为右侧提示时,所有命令都能很好地对齐。
- 我们可以从多个文件重定向输入(但请尝试这样做):cat <file1 <file2 <file3
回答
对于临时使用,我们最好坚持使用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
这将提示我们输入密码。我们可能想要为任何其他完成脚本创建一个/etc/bash_completion.d目录(例如,我在那里有git完成脚本)。
完成此操作后,最后一步是确保主目录中的.bash_profile文件具有
if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
登录时加载其中的完成文件。
要测试它,只需打开一个新的终端,然后尝试在cvs上完成操作,它应该在完成列表中显示cvs选项。
回答
就个人而言,我喜欢zsh。
通常,我们可能不会注意到它与bash之间的区别,除非我们想快速进行递归glob之类的操作:
- 例如** / *。c。
或者使用后缀别名将特定编与不同的后缀关联,以便我们可以直接"执行"它们。下面的别名使我们可以在提示符下输入" ./my_program.c"来"运行" C源文件,该文件的工作原理与我们键入vim。/ my_program.c
一样。 (等效于双击文件图标。)
- 别名-s c = vim
或者打印今天修改的文件名:
- 打印*(e:今日年龄:)
我们可能可以在bash中完成所有这些操作,但是我对zsh的经验是,如果我想做某事,我可能会在zsh喜欢者中找到它。
我还发现"从Bash到Z-Shell"这本书非常有用。
玩弄大量选项的想法也很有趣!
回答
如果我们想使用ZSH更好地完成工作,则配置非常简单。将其放在〜/ .zshrc中:
autoload -U zutil # [1] autoload -U compinit # [2] autoload -U complist # [3] compinit
但是,值得检查ZSH的所有其他出色功能。上面的示例将为我们提供非常简单的提示,并具有良好的完成效果。如果我们不想摆弄配置,但是想看看ZSH可以为我们做什么,请使用Google for" zshrc",我们将可以使用一些配置开始使用。
- [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。我们将有权访问:
zmv
:我们可以执行以下操作:zmv'(*)。mp3'$ 1.wma'
可以存储数千个文件。- zcalc:极其舒适的计算器,优于bc。
- zparseopts:一种用于分析为脚本提供的任意复杂选项的一线工具。
autopushd
:我们总是可以在cd
之后执行popd
来回到以前的目录。- 浮点支持。不时需要它。
- 哈希支持。有时它们只是一个关键功能。