Compare sh shell vs. Bash

Compare sh shell vs. Bash
Qualquer sistema operacional moderno do Unix/Linux vem com o sh e as conchas de festa instaladas por padrão. Enquanto os dois são de natureza muito semelhante, um oferece mais do que o outro.

Este guia mergulhará profundamente nas diferenças e semelhanças entre o sh e as cascas de festa.

Shell linux

No Linux, um shell é um programa dedicado para interpretação de comando. Ele interpreta o idioma de comando e diz ao sistema para executar as tarefas descritas. Não faz parte do kernel, mas pode executar tarefas, como executar programas e criar arquivos.

A funcionalidade de uma concha é melhor compreendida com um exemplo. Abra o terminal em seu sistema e execute o seguinte comando:

$ data

Aqui, observamos o seguinte:

  • O shell padrão assumiu o comando "data", interpretado e executou o data ferramenta.
  • Ele também imprimiu a saída na tela do console.

Conchas também podem vir com seus próprios idiomas. Bash Script, por exemplo, é potente em automatizar tarefas muito complexas e alcançar maravilhas.

Existem muitas conchas disponíveis para a plataforma Linux. Obviamente, o mais popular é a casca de bash. Aqui estão algumas conchas alternativas que vale a pena conferir:

  • Zsh com oh meu zsh
  • Casca de peixe

The Bourne Shell (SH)

O Bourne Shell é o shell padrão da versão 7 Unix. Originalmente desenvolvido por Stephen Bourne no Bell Labs, foi um substituto para o Thompson Shell. O Bourne Shell começou sua jornada em 1979. Saiba mais sobre a história da concha de Bourne na Wikipedia.

Até hoje, o Bourne Shell está disponível em quase todos os sistemas Linux. A localização do binário é a seguinte:

$ que sh

Sistemas semelhantes a Unix continuam a ter Bourne Shell /usr/bin/sh. Pode não ser a concha Bourne, mas um link simbólico/duro para uma concha mais compatível. Você pode verificar isso executando o seguinte comando:

$ arquivo -h /bin /sh

O sh Shell também é o nome da linguagem de programação de comando. Este idioma é descrito pelo Posix Standard que todos os sistemas Unix e UNIX devem seguir. A concha de Bourne que discutimos até agora é uma implementação de sh.

O Bourne novamente Shell (Bash)

Agora, chegamos à concha moderna que todos conhecemos e amamos - The Bash Shell, também conhecida como “Bourne Again Shell.”A nomeação é um trocadilho indicando que substitui a concha de bourne.

Desenvolvido por Brian Fox para o projeto GNU, Bash é um shell Unix e uma linguagem de comando. Foi lançado pela primeira vez em 1989. Desde então, tem sido o shell de login padrão para a maioria dos distritos Linux. Saiba mais sobre a história da casca de batida na Wikipedia.

Bash é um superconjunto de sh, o que significa que ele incorpora características de sh e um pouco mais. Como idioma, a maioria dos comandos faz a mesma coisa que sh. No entanto, Bash não é uma concha compatível com Posix, mas um dialeto da linguagem da shell Posix. Bash pretende ser a implementação conformante da parte do IEEE Posix Shell and Tools da especificação IEEE POSIX (IEEE Standard 1003.1).

Verifique a localização do binário Bash Shell:

$ que bash

Diferenças entre Sh e Bash

Forneceu o contexto histórico, sh e o bash compartilhe mais semelhanças do que as diferenças, pois uma é uma melhor implementação do outro. Independentemente disso, aqui estão algumas diferenças perceptíveis de características que se deve saber.

Shell padrão

Na maioria dos sistemas modernos de hoje, Bash é o shell padrão.

Localização binária

Verifique a localização binária de ambas as conchas:

$ que sh
$ que bash

Recurso

Comparado com sh, Bash oferece muito mais flexibilidade e sintaxe que parecem uma linguagem de programação moderna. Aqui estão alguns recursos adicionais que o Bash oferece sobre sh:

  • Bash suporta a conclusão da linha de comando com o ABA chave
  • Navegue pelo histórico de comando usando o ACIMA Chave de seta ou "Ctrl + R"
  • Cálculo aritmético sem ferramentas de terceiros
  • Matrizes associativas
  • Atalhos do teclado
  • Suporte de personalização para a apresentação padrão
  • Etéias segundos e variáveis ​​de ambiente de tempo de epocreal
  • Expansões de aparentamento

Conformidade com Posix

Por padrão, Bash não é compatível com Posix, enquanto sh é. No entanto, podemos executar o Bash no modo compatível com Posix com o seguinte comando:

$ Bash -Posix

Se você estiver escrevendo um script de bash, mas precisar do padrão POSIX, use o código a seguir no início:

#!/BIN/BASH
SET -O POSIX

Aqui o definir O comando diz ao BASH para ativar o modo POSIX.

Fácil de usar

Bash oferece uma linguagem da linha de comando mais moderna em comparação com sh. Nesse sentido, você terá um tempo mais confortável usando o Bash.

Portabilidade

Comparado ao Bash, sh oferece melhor portabilidade.

Porque sh é compatível com Posix, qualquer shell que suporta POSIX poderá executar sh scripts. Por exemplo, Bash pode correr sh scripts no modo Posix.

Script

Quando você está escrevendo um script em Bash, o código só é garantido para ser compatível com o Bash.

Por outro lado, quando se espalhando sh, O código pode ser executado em qualquer shell. É porque sh define a linguagem de script de shell original.

Conclusão

Neste artigo, exploramos a história, semelhanças e diferenças entre sh e bash. Sh é o antecessor de Bash. Ambos estão disponíveis em todos os sistemas UNIX/Linux modernos. Enquanto Bash oferece uma experiência mais confortável e fácil de usar, sh Oferece compatibilidade, portabilidade e sintaxe/comportamento padronizado.

Você é novo no script de batida? Este tutorial de script de bash para iniciantes cobre tudo o que é necessário para escrever seus scripts de bash. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e tutoriais.