Você pode ter ouvido falar do Bash - o shell padrão na maioria das distribuições do Linux. Há outro shell que vem pré-instalado no Linux: o shell Bourne.
O shell Bourne é um dos shells mais antigos ainda em uso nos sistemas Linux modernos, embora não seja tão amplamente usado quanto o Bash. Aqui está o que você precisa saber sobre o shell Bourne no Linux.
O que é Bourne Shell?
O shell Bourne, muitas vezes abreviado para "sh", recebeu o nome do cientista da computação britânico Stephen R. Bourne, que o desenvolveu enquanto trabalhava na Bell Labs em 1978. O shell substituiu o Thompson Shell anterior, escrito por um dos criadores originais do Unix, Ken Thompson.
O shell Bourne estreou com a versão 7 do Unix em 1979. Ele tinha recursos como controle de fluxo, variáveis e manipulação aprimorada de strings. Esses recursos tornaram mais fácil usar o shell como uma linguagem de programação, em vez de apenas uma maneira de chamar outros programas.
Enquanto o shell Bourne permaneceu popular para escrever scripts portáteis em sistemas Unix, foi substituído para uso interativo pelo shell C, KornShell, shell Bourne Again, também conhecido como Bash e Z concha. Esses shells ofereciam recursos como
histórico de comandos e edição de linha de comando que facilitou a vida de usuários e administradores.KornShell, Bash e Z shell (abordado posteriormente) têm sintaxes influenciadas pelo Bourne shell.
Linguagens de script de plataforma cruzada mais poderosas com recursos ainda mais avançados, como Perl e Python, também substituíram amplamente os scripts de shell.
Ainda assim, o shell Bourne é amplamente compreendido e muitos scripts fornecidos com programas Linux usam sua sintaxe para várias tarefas.
O comportamento do shell Bourne foi codificado em o padrão POSIX, muitos sistemas modernos do tipo Unix o implementam de alguma forma usando um shell compatível.
Alternativas modernas de Bourne Shell
Existem várias alternativas modernas de código aberto para o shell Bourne original em sistemas Linux. Aqui estão alguns dos mais conhecidos:
1. Bourne Again Shell (Bash)
O nome Concha Bourne Again (Bash) é uma brincadeira com a casca Bourne. Esse shell foi originalmente desenvolvido como um componente do sistema GNU, anterior ao Linux por vários anos.
É amplamente compatível com scripts originalmente escritos para o shell Bourne. Ele também incorporou recursos como edição de linha de comando, pioneira no KornShell.
O Bash é o shell padrão em muitas distribuições do Linux e, portanto, tornou-se um padrão de fato por conta própria.
2. KornShellGenericName
KornShellGenericName, também conhecido como ksh, foi originalmente desenvolvido por David Korn, também da Bell Labs, na década de 1980. Construído sobre o shell Bourne, o KornShell introduziu alguns recursos adicionais, como controle de trabalho, matrizes e edição de linha de comando. Este último foi um recurso revolucionário quando apareceu pela primeira vez porque era muito mais fácil do que usar o mecanismo de histórico do shell C.
Se você precisar reeditar um comando emitido anteriormente, poderá usar comandos semelhantes ao Vi ou Emacs para fazer isso.
KornShell era padrão em alguns sistemas Linux comerciais como o Oracle Solaris. Como o KornShell original foi inicialmente lançado pela AT&T sob uma licença proprietária, uma versão de código aberto chamada pdksh acabou sendo lançada.
3. Almquist/Debian Almquist Shell
O shell Almquist foi originalmente escrito por Kenneth Almquist e foi concebido como um substituto leve para o shell Bourne. Muitos sistemas BSD o incluem como a implementação do sh.
Uma versão foi portada para o Debian na década de 1990 e é conhecida como shell Debian Almquist. Como o nome indica, é a implementação do sh nos sistemas Debian e Ubuntu.
4. Concha Z
concha Z, ou zsh, é um dos shells mais novos, originalmente desenvolvido em 1990 por Paul Falsted. O shell Z tornou-se conhecido por seus recursos avançados. Um bom exemplo é o globbing recursivo ou a capacidade de combinar curingas em subdiretórios.
Z shell é o shell de login padrão para macOS e Kali Linux.
Compatibilidade Bourne Shell
Embora esses shells sejam amplamente compatíveis com scripts originalmente escritos para o shell Bourne, existem maneiras de alterar seu comportamento para que sejam mais parecidos com o shell original.
A principal forma de fazer isso é através um link simbólico. A maioria dos sistemas fará links simbólicos /bin/sh para Bash ou outro shell. Quando invocado dessa forma, o shell entrará em um modo de compatibilidade com o shell Bourne.
Você pode ver qual shell /bin/sh está ligado a com o comando ls:
ls -l /bin/sh
Agora você sabe sobre o Bourne Shell
O shell Bourne é um dos padrões mais antigos para scripts em sistemas do tipo Unix. Mesmo que tenha sido substituído por outros shells, ainda é vital para executar scripts escritos por outros.
O Bash é um dos melhores derivados de Bourne para codificação, principalmente por sua abordagem de variáveis. Ele tem algumas variáveis únicas que podem fazer você querer considerá-lo para o seu próximo projeto.