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:
- Evolução dos sistemas operacionais do Unix
- Todos os comandos do Unix foram reescritos no Linux?
- O Linux é um Unix?
- O que significa ser “compatível com sh”?
(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.