我已经成为 zsh 用户有一段时间了(在那个 tcsh 之前和那个 csh 之前)。我对它很满意,但想知道 zsh 中是否存在任何引人注目的 bash 功能。相反,是否有 bash 中不存在的 zsh 功能。我目前的感觉是 bash 更好:
不想在这里开始一场宗教战争,这就是为什么我只是在寻找仅存在于一个外壳中的功能。
0x8*_*x89 40
zsh 适用于火神。;-)
说真的:bash 4.0 有一些以前只能在 zsh 中找到的特性,比如 ** globbing:
% ls /usr/src/**/Makefile
Run Code Online (Sandbox Code Playgroud)
相当于:
% find /usr/src -name "Makefile"
Run Code Online (Sandbox Code Playgroud)
但显然更强大。
根据我的经验,bash 的可编程完成比 zsh 的性能要好一些,至少在某些情况下(例如,为 aptitude 完成 debian 包)。
bash 必须Alt + .插入!$
zsh has expansion of all variables, so you can use e.g.
% rm !$<Tab>
Run Code Online (Sandbox Code Playgroud)
for this. zsh can also expand a command in backtics, so
% cat `echo blubb | sed 's/u/a/'`<Tab>
Run Code Online (Sandbox Code Playgroud)
yields
% cat blabb
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
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:
% alias -g ...="../.."
% cd ...
Run Code Online (Sandbox Code Playgroud)
X-I*_*nce 16
我想指出,在 FreeBSD、OpenBSD 或 NetBSD 上默认没有安装 bash,在 Solaris 10 上也没有默认安装(OpenSolaris 将其作为默认设置),我上次使用 AIX 时,或者默认情况下也未安装 HP-UX 服务器。
此外,在 OpenSolaris 上 /bin/sh 不是 bash。是ksh。作为软件搬运工,我遇到的最大问题是人们认为 /bin/sh 是 bash 并且它会接受 bash 扩展语法。虽然在大多数 Linux 发行版上似乎都是这种情况,但在其他地方并非如此,这真的很烦人。
Chu*_*cky 12
虽然我是 bash 用户,但我发现 zsh 的一个功能非常酷:RPS1。
记住:
样本:
当使用类似
PS1=’%B(%h) %m%#%b ‘
RPS1=’(%20<…<%~)'
Run Code Online (Sandbox Code Playgroud)
您会在左侧看到提示,将当前目录推到右侧。当当前行变得太长时,它甚至会消失!这是因为 zsh 足够聪明,可以将 RPS1 的优先级设置为低。
您可以在http://imgur.com/OAZhC 上查看此示例的屏幕截图。
Zsh 有拼写更正。如果你是一个字母(或更多),它会弄清楚你的意思。
它还具有更强大的选项卡完成功能,这是我喜欢的。
Zsh 有一个交互式配置实用程序,可以按照您的喜好进行设置。
一些速度测试说 zsh 更快,但我没有注意到任何区别。
我不知道 zsh 不支持的任何 bash 功能。zsh 的设计目标似乎包括支持 bash 添加的任何功能。
我仍然使用 bash 而不是 zsh。我很少遇到 zsh 支持而 bash 不支持的引人注目的功能。多年来 zsh 偶尔出现的问题,或者它在某些系统上不存在,使得它不值得进行转换。
我终于可以在每个 Unix 系统上使用相同的 shell,为了我永远不会使用的功能而破坏它是不值得的。
zsh 中存在但在 bash 中不存在的功能似乎主要是可爱的,但不是日常重要的功能。
| 归档时间: |
|
| 查看次数: |
18122 次 |
| 最近记录: |