Bem-vindo à primeira aula do nosso curso de Shell Script! Nesta aula, vamos explorar a história do shell e do Bash, entendendo como essas ferramentas surgiram, quem as criou e como evoluíram ao longo do tempo. Você aprenderá também as diferenças entre os principais shells e o que esperar para o futuro.

Introdução

O shell é um interpretador de comandos que serve como interface entre o usuário e o sistema operacional. Nos sistemas Unix e Linux, o shell é uma ferramenta essencial para automação de tarefas, administração do sistema e desenvolvimento. O Bash (Bourne Again SHell) é um dos shells mais populares e poderosos disponíveis atualmente.

Pessoas e cronologia (Bourne shell, Brian Fox, GNU)

A história do shell começa no início dos anos 1970, com o desenvolvimento do Unix. O primeiro shell foi o Thompson shell (sh), criado por Ken Thompson. Em 1977, Stephen Bourne criou o Bourne shell (também chamado sh), que se tornou o shell padrão do Unix Version 7. O Bourne shell introduziu recursos como scripts, variáveis e controle de fluxo.

Em 1989, Brian Fox, trabalhando para a Free Software Foundation, desenvolveu o Bash (Bourne Again SHell) como parte do projeto GNU. O Bash foi projetado para ser compatível com o Bourne shell, mas incorporando recursos do Korn shell (ksh) e do C shell (csh). O Bash tornou-se o shell padrão na maioria das distribuições Linux e no macOS (antes do Catalina).

sh vs bash vs outros shells

Existem vários shells disponíveis, cada um com suas características. O sh (Bourne shell) é o shell original, leve e compatível com POSIX. O bash é uma versão estendida, com recursos como arrays, expansão de chaves, e melhorias na edição de linha de comando. Outros shells populares incluem:

  • ksh (Korn shell): desenvolvido por David Korn, combina recursos do Bourne shell e do C shell.
  • csh (C shell): criado por Bill Joy, com sintaxe similar à linguagem C.
  • zsh (Z shell): um shell moderno com muitos recursos avançados, como correção ortográfica e temas.
  • fish (Friendly Interactive Shell): focado em usabilidade e autocompletar inteligente.

Embora o bash seja amplamente utilizado, scripts escritos para sh (compatíveis com POSIX) são mais portáveis entre diferentes sistemas.

Futuro

O Bash continua sendo mantido e atualizado, com novas versões lançadas periodicamente. No entanto, shells mais modernos como zsh e fish estão ganhando popularidade, especialmente entre desenvolvedores. O zsh, por exemplo, tornou-se o shell padrão no macOS a partir do Catalina. Apesar disso, o Bash permanece essencial para administração de servidores Linux e para scripts de automação, devido à sua ubiquidade e compatibilidade.

Referências

Exercícios

  1. Quem criou o Bourne shell e em que ano?

    O Bourne shell foi criado por Stephen Bourne em 1977.
  2. Qual é o nome completo do Bash e por que ele foi criado?

    Bash significa "Bourne Again SHell". Foi criado por Brian Fox para o projeto GNU, como uma versão melhorada e gratuita do Bourne shell.
  3. Cite duas diferenças entre o sh (Bourne shell) e o bash.

    O bash suporta arrays, expansão de chaves (ex: {1..10}), e possui recursos de edição de linha de comando mais avançados (como histórico e autocompletar) que o sh original.
  4. Qual shell se tornou o padrão no macOS a partir do Catalina?

    O zsh (Z shell) tornou-se o shell padrão no macOS a partir do Catalina.
  5. Por que scripts escritos em sh (compatíveis com POSIX) são mais portáveis que scripts em bash?

    Porque o sh é um padrão POSIX, presente em praticamente todos os sistemas Unix e Linux, enquanto o bash pode não estar disponível em alguns sistemas (como BSD ou ambientes embarcados). Scripts que usam apenas recursos do sh funcionam em qualquer shell compatível com POSIX.