Shells de Unix

Um Shell de Unix, no sentido que usarei aqui, é um interpretador de linha de comando que provê uma interface para o usuário operar sistemas Unix ou Unix-like. Ao longo dos anos, vários shells foram desenvolvidos com diferentes características. Aqui comentarei brevemente sobre os shells mais conhecidos e disponibilizarei dicas para configurar o shell que eu uso.

No seguinte diagrama, estão os seis shells mais populares organizados de forma que um shell de um nível inferior estende as funções do shell acima. Shells de ramos diferentes são incompatíveis.

csh (C shell)      sh (Bourne shell)
      |               /         \
      |               |     ksh (Korn shell)
      |               |          |
tcsh (TC shell)      bash    zsh (Z shell)
  1. C shell (csh)

    Criado por Bill Joy enquanto estudante da UC Berkeley, foi lançado em 1978 como parte do BSD. Foi popular para a criação de scripts, pois sua sintaxe lembra a linguagem C, porém ele é criticado por defeitos em sua implementação.

  2. TC shell (tcsh)

    Tcsh é essencialmente o C Shell com algumas funcionalidades extras, como tab completion, editor de comandos e melhor manipulação do histórico.

  3. Bourne Shell (sh)

    É o tradicional shell desenvolvido por Stephen Bourne na Bell Labs e lançado em 1977. Foi o shell padrão do Unix7 e versões mais recentes são bastante utilizadas até hoje.

  4. Bourne-again Shell (Bash)

    Escrito por Brian Fox para o projeto GNU, foi lançado em 1989 para substituir o Bourne Shell e adicionar várias funcionalidades. É muito usado por ser o shell padrão de várias distribuições do Linux e Mac OS X.

  5. Korn shell (ksh)

    Foi desenvolvido por David Korn na AT&T Bell Labs e lançado em 1983. É muito popular por ser totalmente compatível com o Bourne Shell e possuir várias outras funcionalidades, algumas copiadas do C Shell.

  6. Z shell (zsh)

    Foi escrito em 1990 pelo então estudante Paul Falstad, da Universidade de Princeton e é o shell mais completo desta lista. Pode ser considerado como uma extensão do Bourne Shell com vários aprimoramentos baseados no bash, ksh, tcsh e também possui outras funcionalidades próprias, inclusive um corretor ortográfico.

Como o Zsh é o meu shell favorito escreverei mais sobre sua instalação e configuração (no Arch Linux).

  1. Em /etc/shells, verifique a lista dos shells instalados. Se o zsh não aparecer nessa lista, instale-o.

    $ sudo pacman -S zsh
    
  2. Teste a instalação e configure as opções básicas

    $ zsh
    
  3. Torne o Zsh seu shell padrão (aplicado após novo login).

    $ chsh -s $(which zsh)
    
  4. Edite o principal arquivo de configuração, ~/.zshrc.

    Uma forma fácil de editar o arquivo é através do Oh My ZShell:

    git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    chsh -s /bin/zsh
    

    Eu deixo uma cópia das minhas configurações em https://github.com/jbsilva/dotfiles.


Julio Batista Silva
Julio Batista Silva
Engenheiro de Dados

Eu sou um engenheiro de computação apaixonado por ciência, tecnologia, fotografia e idiomas. Atualmente trabalhando como Engenheiro de Dados na Alemanha.

comments powered by Disqus