Por que o Windows e o Ubuntu possuem comandos semelhantes?

13

O Ubuntu tem um bash (Bourne Again SHell), enquanto o Windows possui um shell proprietário. De acordo com minha pesquisa, não há nome para a linguagem usada para scripts de shell no Windows / Ubuntu. É chamado apenas de shell script.

Por que o Windows & amp; Os shells do Ubuntu entendem os mesmos comandos, como: ls , mkdir , rmdir , mount e assim por diante?

Existe algum tipo de lingua franca para scripts de shell? Se sim, por favor me dê mais detalhes.

    
por Shady Programmer 24.02.2016 / 16:05

2 respostas

44

O Windows cmd.exe não suporta ls , mount , etc., a menos que você mesmo tenha instalado esses arquivos e os tenha adicionado ao %PATH% (via Cygwin, MinGW, Subsistema para Aplicativos baseados em Unix (SUA) ou qualquer outra coisa). Powershell faz. E é por isso que o Powershell tem esses nomes como comandos padrão do Powershell, para que os usuários do Unix possam ser mais confortáveis. Veja a lista de Alias de Compatibilidade no PowerShell . O Windows tem rmdir , mkdir , etc. , mas estes, é claro, não suporta a mesma sintaxe de opções que você encontraria no Ubuntu.

No Ubuntu, isso não tem nada a ver com o Bash. Eles são todos comandos externos. Existem padrões para esses utilitários. POSIX é o mais notável (veja a lista de MSX- utilitários exigidos ), e Linux Standard Base (LSB) é outro que é importante para os sistemas Linux (que é principalmente baseado em POSIX, mas tem algumas adições ). As do Ubuntu são principalmente fornecidas pelo GNU , e os utilitários GNU geralmente possuem mais recursos do que a base requerida pelo POSIX.

POSIX também define a linguagem de shell que você mencionou (que é substancialmente diferente daquela em cmd.exe ). É derivado da sintaxe do Bourne shell . Bash (agora você sabe o que o Bourne novamente refere-se), também do GNU, também adiciona recursos no topo, mas pode se comportar de uma maneira compatível com POSIX quando necessário. A linguagem POSIX é o que você esperaria obter com sh . bash , ksh , ash , dash , zsh todos usam essa linguagem, com aprimoramentos. csh está em um mundo (de pesadelo) e tcsh aumenta csh .

Para entender um pouco mais, veja o histórico dos sistemas Unix e semelhante ao Unix . O Unix é pré-datado do Windows por mais de uma década, e esses utilitários apareceram pela primeira vez no Unix.

O Windows era, ao mesmo tempo, compatível com POSIX, uma vez que o governo dos EUA exigia sistemas operacionais usados por agências do governo (foi quando eles adicionaram os Serviços para Unix (SFU) , dos quais veio o SUA mencionado no primeiro parágrafo). Mas esse requisito foi descartado e, posteriormente, o SUA foi descartado.

Relacionados:

(Observe a parte comum dessas postagens - todas elas estão no Unix & Linux e marcadas com history - você pode achar a navegação por meio dessa tag muito informativa.

    
por muru 24.02.2016 / 16:30
0

Simples:

O Linux é um sistema baseado no modelo UNIX, como foi inventado por Dennis Ritchie e Ken Thompson.

O Windows / DOS é uma imitação barata de um sistema chamado CP / M, popular nos anos 70, naqueles computadores antigos conectados a uma TV. Esse sistema, por sua vez, era uma cópia barata dos primeiros sistemas UNIX do final dos anos 60. / início dos anos 70.

    
por delt 01.03.2016 / 20:14