O que é a concha de Bourne?
O Bourne Shell é um pequeno programa que é executado nos sistemas operacionais UNIX® e Linux® e fornece uma interface para executar programas no sistema. É frequentemente referido como uma interface de linha de comando ou intérprete de comando, pois não fornece nenhuma interface gráfica do usuário (GUI) ao usuário. Os comandos, e quaisquer parâmetros necessários, a serem executados são digitados no shell. O Bourne Shell também é um idioma de script, permitindo que os usuários criem e executem arquivos de script que podem processar dados por meio de vários programas por meio de um único comando. Nos sistemas do tipo Unix®, o programa é simplesmente conhecido como "sh". O Shell Thompson foi limitado à interpretação do comando e várias funções adicionais tiveram que ser executadas como operações externas. Mais tarde, Stephen Bourne criou o Bourne Shell para substituir o ThompsonShell, adicionando vários novos recursos ao próprio shell, bem como na linguagem de script da concha.
Na realidade, o Bourne Shell foi planejado como uma linguagem de script desde o início. Embora ainda fosse a interface da linha de comando do UNIX® versão sete, ela também abriu a possibilidade de os usuários desenvolverem scripts de shell que vinculariam os comandos para processar dados. Com o uso desta programação, o usuário pode estabelecer variáveis para capturar dados conhecidos ou desconhecidos a partir de entrada ou saída e manipular o processamento desses dados através do uso de instruções condicionais no script por meio de uma técnica chamada de fluxo de controle.
Este também foi o primeiro shell a implementar um recurso conhecido como manipulação de sinais. Através do shell de Bourne, um usuário pode enviar um tipo específico de sinal para um processo que já está em execução no computador, instruindo esse processo a fazer SOMmais. Muitas dessas são maneiras de interromper um processo que está executando e produzir algum tipo de saída que pode ser usada para depuração, embora outros existam para interromper temporariamente um processo, retomar e assim por diante.
A capacidade de controlar diretamente os descritores de arquivos foi outro primeiro para o shell de Bourne. Em um sistema do tipo Unix®, todo programa em execução possui uma tabela que lista os descritores de arquivos para qualquer arquivo aberto. Isso pode incluir qualquer coisa, desde um arquivo de texto simples até um diretório ou até mesmo os soquetes de comunicação que os processos usam para compartilhar dados entre si. Para um usuário ter controle sobre os descritores de arquivos em um sistema permitiu controle sem precedentes sobre a entrada e saída para praticamente tudo no computador.
É claro que, embora o Bourne Shell tenha oferecido uma funcionalidade adicional aos usuários, faltava recursos como a capacidade de controlar processos interativamente, estabelecer aliases de comando e manter uma história. Mais tarde, no entanto, vários descendentesComeçaram a surgir formigas que levaram os recursos mais úteis da concha que foram elaborados ao longo dos anos e os enrolaram em novas conchas. Um exemplo comum é o shell Bourne-de novo, ou Bash, que é comum em muitos sistemas Linux®. Como resultado, muitos desses descendentes são totalmente capazes de executar scripts regulares de shell de Bourne, dando a todos os sistemas do tipo Unix® alguma implementação do shell original de Bourne de uma maneira ou de outra. Em muitos sistemas Linux®, este é simplesmente um link de "SH" para "Bash" ou algum outro descendente capaz.