zsh

A maioria dos usuários do Linux usam o bash como seu shell e nunca pensaram em usar outro. Mesmo eu não utilizando muitas das mais avançadas opções do zsh, ou mesmo do bash, acabei optando pelo primeiro.

Um dos pontos mais interessantes de trocar de shell é aprender facilitadores, que talvez até existissem no que você usava antigamente, mas não sabia ou esquecia de usar. Outro ponto é exatamente descobrir as funções que o novo shell apresenta e que não existiam no anterior.

Para começar, aritmética dentro do shell. Normalmente quando preciso fazer uma conta, eu chamava ou A) o galculator ou B) python; nunca me lembrava que podia fazer contas com o bash. O problema do bash é estar limitado a números inteiros:
$ echo $(( 2 + 5 ))
7
$ echo $(( 2.1 * 2 ))
bash: 2.1 * 2 : syntax error: invalid arithmetic operator (error token is ".1 * 2 ")

Já no zsh, podemos usar números decimais:
% echo $(( 2 + 5 ))
7
% echo $(( 1.5 * 3 ))
4.5

E carregando um módulo, podemos até mesmo usar funções matemáticas mais avançadas:
% zmodload zsh/mathfunc
% echo $(( 2 * sqrt(25) ))
10.

O auto-completar do zsh também é mais completo que o do bash. Além de completar nomes de executáveis, o zsh sabe o contexto em que ele está, então se eu digitar % cd TAB ele sabe que eu estou procurando um diretório e não uma outra coisa qualquer. As coisas ficam mais interessantes quando digitamos % kill TAB e ele mostra uma lista dos processos rodando que podemos matar.

O comando alias também ganha uma função extra. Geralmente o usamos para diminuir o número de argumentos que serão passados toda vez que, por exemplo, vamos chamar o comando ls, assim:
alias ls='ls -F --group-directories-first --color=always'
Mas no zsh ele possui uma função a mais. Adicionando -s ao comando, determinamos com que programa ele irá abrir um arquivo.
% alias -s pdf=evince
% arquivo.pdf

É só digitar o nome do arquivo e ele já o abre, usando no caso o evince.

Se eu digitar o nome de um diretório, algo semelhante ocorre.
% pwd
/home
% /usr/bin
% pwd
/usr/bin

Usuários do todo-poderoso vi irão gostar da próxima opção: com ela, o zsh apresenta um comportamente mais parecido com o do vi, exceto pelo fato dele começar no modo de inserção de texto e termos que apertar ESC para ir ao modo dos comandos.
% echo "hello world" # digito ESC dd
%

Essa última opção é interessante para garotos desastrados. Pode acontecer de ao invés de digitar rm *.o você digite rm *>o o que irá apagar todos os arquivos e mandar a saída do comando rm para o arquivo o. Para evitar isso, o zsh pergunta se você deseja mesmo apagar todos os arquivos daquele diretório.

Lembrando que tudo que foi dito a cima são opções, que podem ser desativadas se não te agraderem. Estarei disponibilizando o meu .zshrc a quem interessar, só dê uma atenção à parte dos alias -s e das variáveis $BROWSER, $EDITOR, etc, já que provavelmente não serão as mesmas.

Exemplo de .zshrc

Publicidade

2 Respostas para “zsh

  1. ursulaj novembro 21, 2007 às 1:25 am

    Valeu rapaz, esse lance do bash não suportar decimal eu não sabia, e gracas ao seu post parei de bater cabeca (meio tarde pra man bash :))

    Abracos!

    Ursula

  2. SMarcell março 10, 2008 às 2:27 pm

    Melhor que o zsh não há! Ele é simplesmente fantástico, com opções incríveis e dezenas de outras coisas legais. Segue o link com o meu arquivo .zshrc

    http://www.slackbr.org/forum/viewtopic.php?f=45&t=15341

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: