História do shell e do Bash
Esta aula apresenta a história do shell e do Bash, desde os primeiros sistemas Unix até o GNU Bash. Aborda as principais figuras e cronologia, as diferenças entre shells e o futuro da ferramenta.
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
Quem criou o Bourne shell e em que ano?
O Bourne shell foi criado por Stephen Bourne em 1977.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.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.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.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.