Já houve um pouco de atividade sobre o assunto em outros sites do Stack Exchange. Minha experiência de mudar de bash para zsh, tanto quanto posso lembrar (era anos atrás²), é que eu não perdi uma única coisa. Eu ganhei muito; aqui estão os recursos específicos do zsh que eu mais uso:
-
O recurso zsh que mais sinto falta quando ocasionalmente uso bash é autocd: em zsh, executar um diretório significa mudar para ele, desde que você ative a opção
autocd
.⁴ -
Outro recurso muito útil é a globalização extravagante. Os caracteres
hieroglyphs são um pouco difíceis de lembrar, mas extremamente convenientes (como em, geralmente é mais rápido consultá-los do que gravar o comando find
equivalente). Alguns dos exemplos mais simples:
foo*~*.bak
= todas as correspondências defoo*
, exceto as correspondentes a*.bak
foo*(.)
= apenas arquivos regulares correspondentes afoo*
foo*(/)
= apenas diretórios correspondentes afoo*
foo*(-@)
= apenas links simbólicos pendentes que correspondem afoo*
foo*(om[1,10])
= os 10 arquivos mais recentes que correspondem afoo*
foo*(Lm+1)
= apenas arquivos de tamanho > 1MB
dir/**/foo*
=foo*
no diretóriodir
e todos os seus subdiretórios, recursivamente⁴ -
Para renomear fantasia, o
zmv
builtin pode ser útil. Por exemplo, para copiar todos osfile
parafile.bak
:zmv -C '(*)(#q.)' '$1.bak'
-
Tanto o bash quanto o zsh têm um sistema de conclusão decente que precisa ser ativado explicitamente (
. /etc/bash_completion
ouautoload -U compinit; compinit
). O Zsh é muito mais configurável e geralmente mais sofisticado.
Se você executar zsh sem .zshrc
, ele inicia um menu interativo que permite escolher opções de configuração. (Algumas distribuições podem desabilitar isso; nesse caso, execute autoload zsh-newuser-install; zsh-newuser-install
.) Eu recomendo ativar as opções de histórico recomendadas, ativando a conclusão (“novo estilo”) e ativando as “opções comuns de shell”, exceto beep
. Mais tarde, configure mais opções conforme você as descobre.
² Na época, a conclusão programável era o recurso matador do zsh, mas o bash o adquiriu logo após.
⁴ Recursos que o bash adquiriu apenas na versão 4 (portanto, ainda não estão disponíveis em muitos sistemas) estão em um tipo menor.