zsh has expansion of all variables, so you can use e.g.
% rm !$<Tab>
for this. zsh can also expand a command in backtics, so
% cat `echo blubb | sed 's/u/a/'`<Tab>
yields
% cat blabb
I find it very useful to expand rm *, as you can see what would be removed and can maybe remove one or two files from the commmand to prevent them from being deleted.
Also nice: using the output from commands for other commands that do not read from stdin but expect a filename:
% diff <(sort foo) <(sort bar)
From what I read bash-completion also supports completing remote filenames over ssh if you use ssh-agent, which used to be a good reason to switch to zsh.
Aliases in zsh can be defined to work on the whole line instead of just at the beginning:
zsh 用于火神。;-)
说真的:bash 4.0 有一些以前只能在 zsh 中找到的功能,比如 ** globbing:
相当于:
但显然更强大。
以我的经验,bash 的可编程完成性能比 zsh 好一点,至少在某些情况下(例如,为 aptitude 完成 debian 包)。
bash 必须
Alt + .
插入!$
zsh has expansion of all variables, so you can use e.g.
for this. zsh can also expand a command in backtics, so
yields
I find it very useful to expand
rm *
, as you can see what would be removed and can maybe remove one or two files from the commmand to prevent them from being deleted.Also nice: using the output from commands for other commands that do not read from stdin but expect a filename:
From what I read bash-completion also supports completing remote filenames over ssh if you use ssh-agent, which used to be a good reason to switch to zsh.
Aliases in zsh can be defined to work on the whole line instead of just at the beginning:
我想指出的是,在 FreeBSD、OpenBSD 或 NetBSD 上默认没有安装 bash,在 Solaris 10 上也没有默认安装(OpenSolaris 将它作为默认设置),上次我使用 AIX,或者默认情况下也未安装 HP-UX 服务器。
此外,在 OpenSolaris 上 /bin/sh 不是 bash。是ksh。作为一名软件搬运工,我遇到的最大问题是人们认为 /bin/sh 是 bash 并且它将接受 bash 扩展语法。尽管在大多数 Linux 发行版上似乎都是这种情况,但在其他地方却并非如此,而且真的很烦人。
虽然我是 bash 用户,但我发现 zsh 的一个功能非常酷:RPS1。
记住:
样本:
当使用类似的东西时
您会在左侧看到提示,并将当前目录推到右侧。当当前行变得太长时,它甚至会消失!这是因为 zsh 足够聪明,可以给 RPS1 低优先级。
您可以在http://imgur.com/OAZhC看到此示例的屏幕截图。
Zsh 有拼写更正。如果你是一个字母(或更多),它会弄清楚你的意思。
它还具有更强大的制表符补全功能,这是我喜欢的。
Zsh 有一个交互式配置实用程序,可以按照您的喜好进行设置。
一些速度测试说 zsh 更快,但我没有注意到任何区别。
我不知道 zsh 不支持的任何 bash 功能。zsh 的设计目标似乎包括支持 bash 添加的任何功能。
我仍然使用 bash 而不是 zsh。我很少遇到 zsh 支持而 bash 不支持的引人注目的功能。多年来 zsh 偶尔出现的问题,或者它在某些系统上不存在,使得它不值得进行过渡。
我终于可以在每个 Unix 系统上使用相同的 shell,因为我永远不会使用的功能而破坏它是不值得的。
zsh 中存在但 bash 中不存在的功能似乎大多很可爱,但在日常工作中并不重要。
bash 有许多过去只存在于 zsh 中的功能。正如任何最近的 ubuntu 用户所发现的那样,您现在也可以使用 bash 进行“智能选项卡完成”。
进程替换和扩展通配符是我最想念的两个功能。提示设置也很酷 - 在命令行上键入复杂语句时查看嵌套级别。自动加载使得在每个 shell 中包含许多功能变得可行。
由于 vi 模式支持,我是 zsh 的粉丝,但我发现它并没有被广泛使用。我想我读到 zsh 喜欢从其他 shell 中获取流行的特性并将它们组合起来(因此特定于 bash 的东西和特定于 csh 的东西都可以在 zsh 中使用)。
也有人说我在使用zsh来展示我的极客因素,但我无法证实或否认这个谣言。
受欢迎程度,#bash 430 位用户。#zsh 123 个用户。我相信 zsh 网站对 zsh 与其他 shell 进行了很好的比较。zsh 有更好的 vi 模式支持。
Bash 使用的 if 和 while 语法与命令行的 /bin/sh 脚本中使用的语法相同。
在 zsh 中,语法是不同的。如果您在命令行上使用 if 或 while 语句,则必须有效地使用 zsh