O que é o Shell Bash e por que é tão importante para o Linux?

O shell Bash tem mais de 30 anos e ainda está forte. O que ele faz, de onde vem e por que ainda é o shell mais comum em sistemas Linux?

índice

  1. O que é uma concha?
  2. bourne shell
  3. nascimento de Bash
  4. Por que o Bash ainda é importante
  5. Bash será substituído?

O que é uma concha?

Quando você abre uma janela de terminal e digita comandos, algo precisa pegar o que você digitou, descobrir o que você quis dizer e executar as tarefas solicitadas. O software que faz isso é o shell. Um shell é um interpretador de comandos. Examine o que você digitou e selecione os comandos, nomes de diretórios, nomes de arquivos e programas para que você possa entender o que está tentando realizar.

As pessoas costumam usar as frases "janelas de terminal", "linha de comando" e "shell" de forma intercambiável, mas são três coisas diferentes. Uma janela de terminal é uma representação de software de um terminal de teletipo físico. Dá-lhe uma ligação ao computador. Para fazer qualquer coisa útil, você deve ser capaz de escrever instruções em uma linha de comando. A linha de comando é fornecida pelo shell e a janela do terminal permite acessar o shell.

Os shells também permitem agrupar uma coleção de comandos em um arquivo de texto chamado script. Todos os comandos no script são executados automaticamente sempre que você executa o script. Os scripts oferecem eficiência, repetibilidade e conveniência.

O primeiro shell do Unix foi o shell de Thompson, chamado sh . Escrito por Ken Thompson, que talvez seja o membro mais importante dos fundadores originais do Unix, um Bell Labs. O shell de Thompson foi usado como o shell padrão do Unix até e incluindo o Unix versão 6. Ele foi substituído pelo Bourne shell na versão 7 do Unix em 1979.

RELACIONADOS: O que é Unix e por que é importante?

bourne shell

O Bourne Shell, escrito por Stephen Bourne, foi um substituto atualizado para o shell Thompson. Até começamos a usar o mesmo comando do shell Thompson, sh , para manter a compatibilidade com os scripts existentes. A compatibilidade com versões anteriores era importante, mas foram incluídos novos recursos que forneceram muitos recursos que ainda usamos hoje.

O Bourne shell era um shell interativo e uma linguagem de script. Suporta execução de tarefas em primeiro e segundo plano e controle de tarefas elementares. Piping e redirecionamento foram adicionados, juntamente com melhorias no manuseio de loops.

O shell agora continha alguns comandos embutidos, o que significa que não precisava passar tudo para utilitários externos, tornando-o mais eficiente. O Bourne shell também suporta "documents here", uma forma elegante de automatizar o envio de dados em comandos.

A concha Bourne elevou a fasquia e tornou-se o novo padrão.

RELACIONADO: Como usar "Aqui Documentos" no Bash no Linux

nascimento de Bash

Em 1984, quando o Projeto GNU anunciou sua intenção de criar um clone livre do Unix, escrito do zero e extensível com novas licenças permissivas, a equipe precisava de um shell. Quando um voluntário que havia trabalhado em um shell para o projeto GNU falhou repetidamente em fornecer qualquer coisa, Brian Fox foi contratado para escrever um clone do shell Bourne.

Foi apelidado de Bourne Again Shell ou Bash. Isso foi em parte uma homenagem a Stephen Bourne e em parte um trocadilho por diversão. Após seu lançamento em 1989, Chet Ramey ajudou a corrigir alguns bugs no Bash. Com o tempo, ele se tornou um co-mantenedor do shell Bash. Hoje, ele ainda é responsável pelo projeto Bash.

Linus Torvalds, o criador do kernel Linux, disse que os dois primeiros programas que ele executou em seu novo kernel em 1991 foram Bash e gcc , o compilador GNU. O acoplamento dos utilitários GNU com o kernel Linux tem sido mutuamente benéfico. O sistema operacional GNU precisava de um kernel, e o kernel Linux precisava de todo o resto que compõe um clone do Unix.

Como o Bash é o shell padrão do GNU, ele se tornou o shell padrão em todas as distribuições GNU/Linux. O Linux floresceu a ponto de agora sustentar uma parte incrível do mundo moderno. A concha Bash também surfou nessa onda de sucesso.

O Bash incorpora e melhora o conjunto de recursos do shell Bourne, mas também se inspirou em outros shells, como o C. Shell ( csh ) e o KornShell ( ksh ). Por exemplo, expansão til " ~ "Para o valor mantido em $HOME a variável de ambiente vem do shell C e o comando fc que chama o editor padrão nos comandos do histórico de comandos vem do KornShell.

Bash introduziu arquivos de configuração como arquivos ".bashrc" e ".bash_profile". A edição de linha de comando no Bash excede em muito as capacidades dos shells anteriores. A manipulação de comandos executados anteriormente no histórico de comandos era uma versão melhorada da função "bang history" do shell C. A expansão de chaves era um recurso ausente no shell Bourne que foi implementado no Bash como um superconjunto de funções encontradas no shell C .Arrays foram aprimorados removendo seus limites de tamanho. A expansão de parâmetros no prompt de comando permite que os usuários personalizem seu prompt Bash.

O shell Bash destina-se a cumprir com o padrão POSIX P1003.2 / ISO 9945.2 Shell and Utilities.

RELACIONADO: Linux matou o Unix Comercial?

Por que o Bash ainda é importante

Omar Tursic / Shutterstock.com

Bash pode não ter durado tanto, mais de 30 anos, quanto o shell padrão do Linux, se não estivesse à altura da tarefa. Devido à sua longa vida útil e enorme base de usuários, o Bash é maduro e muito estável. Muitos shells alternativos estão disponíveis, desde veteranos como o C Shell e KornShell até os mais novos como o Z Shell ( zsh ) e o Friendly Interactive Shell ( fish ). Tanto a casca Z quanto a casca de peixe têm alguns recursos que o Bash não tem e, possivelmente, maneiras melhores de realizar algumas das mesmas coisas que o Bash faz. Então, por que o Bash ainda é o shell dominante?

De todas as máquinas Linux que já fui chamado para administrar, não consigo me lembrar de uma única que não tivesse o Bash como shell. Máquinas Unix, sim, mas caixas Linux, não. É Bash o tempo todo. Essa familiaridade permite que você comece a trabalhar rapidamente e seja eficaz imediatamente. Você já conhece o Bash, então não há curva de aprendizado. Você não é prejudicado por pequenas diferenças de sintaxe que o mantêm tentando descobrir por que algo está errado. Tempo gasto para descobrir sobre o que é o feitiço Esse shell é o tempo de inatividade, portanto, é do interesse da empresa cliente usar um shell conhecido e amplamente usado.

Usar um shell que é, ou se esforça para ser, compatível com POSIX é importante para muitas distribuições Linux, mas a compatibilidade com versões anteriores é o que mais importa. Obviamente, fazer alterações que quebrariam os scripts existentes não é atraente. Atraente ou não, às vezes você só precisa ranger os dentes. Em 3 de setembro de 1967, a Suécia mudou de volante à esquerda para volante à direita. Às 4h50, todo o tráfego deveria parar, mover-se lentamente para o outro lado da estrada e parar mais uma vez. Às 5:00, o trânsito poderia continuar, com todos agora dirigindo pela direita.

Bash será substituído?

O que pode parecer inconcebível agora pode realmente acontecer mais tarde. A menos que queiramos nos apegar à crença de que todos usaremos o Bash até o fim do mundo, a verdade é que o Bash provavelmente um dia será substituído como o shell padrão do Linux, seja ele o shell GNU padrão ou não. Ou talvez seja o Bash, mas atualizado muito além do shell que usamos hoje. Mas o que quer que substitua o Bash de hoje terá que ser totalmente (ou quase) compatível com versões anteriores ou valerá a pena, quaisquer que sejam os benefícios.

Isso é inédito. A partir da versão 10.15 do macOS, a Apple abandonou o Bash e adotou o shell Z como seu shell padrão. A Apple tem problemas com a GNU General Public License (GPL) v.3. Infelizmente, esta é a licença usada pelo Bash. A última versão do Bash lançada sob a GPL v.2 foi a versão 3.2 de 2007. A versão atual é 5.1. A Apple estava quase uma década e meia atrasada. A única maneira pela qual a Apple poderia incluir um shell atualizado sem ir para a GPL v.3 era mudar para um shell completamente diferente. Para a Apple, isso valeu a pena. (No entanto, você ainda pode voltar para o Bash no macOS, se preferir.)

Há uma grande diferença entre a estação de trabalho de um usuário avançado e um servidor Linux de linha de negócios que você precisa gerenciar remotamente. através de uma conexão SSH. Em quase 1,5 milhão de servidores hospedados pelo Amazon EC2, mais de 93% usam Linux. Quase 75% dos próprios servidores web estão rodando Linux. Organizações como Red Hat, Amazon, Google usam Linux internamente.

É difícil imaginar quais benefícios um novo shell poderia oferecer que justificaria esse tipo de convulsão global. É por isso que Bash é cimentado no lugar.

Até a Microsoft agora oferece uma maneira de executar um shell Bash baseado em Linux no Windows 10!

  • Google Maps para adicionar rotas, calçadas e tráfego de pedestres mais seguros
  • O que são enumeradores (tipos enumerados) na programação e por que eles são úteis?

descubra mais conteúdo

Você pode ocultar um amigo de outro amigo no Facebook?

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Deixe uma resposta Cancelar resposta

Um shell Unix é o termo usado em computação para se referir ao interpretador de comandos de sistemas operacionais baseados em Unix e similares, como GNU/Linux, e que é sua interface de usuário tradicional.

O que o shell do Linux faz?

A interface com o sistema operacional é chamada de shell . O shell é a camada mais externa do sistema operacional. Os shells incorporam uma linguagem de programação para controlar processos e arquivos, bem como iniciar e controlar outros programas.

O que é shell e para que serve?

Na computação, o shell ou interpretador de comandos ou interpretador de comandos é o programa de computador que fornece uma interface de usuário para acessar os serviços do sistema operacional.

Qual é o terminal ou shell?

O que é Shell ? Shell é a interface ou programa que interpreta as linhas de comando (onde dados e comandos são inseridos) enviadas pelo terminal . Ele funciona processando os comandos e interpretando os resultados, ou seja, pega os comandos manuscritos e transmite para o sistema operacional que eles devem ser executados.

O que é um shell na programação?

No Linux, o interpretador de linha de comando é conhecido como shell , que nada mais é do que um programa projetado para aceitar comandos e executá-los. Vários tipos de programas podem ser usados ​​como shells , mas em quase todas as versões do Linux existem vários shells padrão disponíveis.

Ir arriba