zsh là dành cho người thô tục. ;-)
Nghiêm túc: bash 4.0 có một số tính năng trước đây chỉ được tìm thấy trong zsh, như ** globalbing:
% ls /usr/src/**/Makefile
tương đương với:
% find /usr/src -name "Makefile"
nhưng rõ ràng mạnh hơn.
Theo kinh nghiệm của tôi, việc hoàn thành lập trình của bash thực hiện tốt hơn một chút so với zsh, ít nhất là đối với một số trường hợp (ví dụ hoàn thành các gói debian cho năng khiếu).
bash Alt + .phải chèn!$
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:
% alias -g ...="../.."
% cd ...