值得切换到zsh以供临时使用吗?

时间:2020-03-05 18:47:30  来源:igfitidea点击:

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来回到以前的目录。
  • 浮点支持。不时需要它。
  • 哈希支持。有时它们只是一个关键功能。