O Ubuntu possui um bash (Bourne Again SHell), enquanto o Windows possui seu shell proprietário. De acordo com minha pesquisa, não há nome para a linguagem usada para scripts de shell no Windows / Ubuntu. É apenas chamado de script de shell.
Por que conchas do Windows e Ubuntu compreender os mesmos comandos, tais como: ls
, mkdir
, rmdir
, mount
e assim por diante?
Existe algum tipo de lingua franca para scripts de shell? Se assim for, por favor me dê mais detalhes.
command-line
bash
windows
history-of-ubuntu
Shady Programmer
fonte
fonte
ls
é suportado pelo Powershell, nãocmd.exe
. E isso porque os criadores do Powershell se esforçaram para adicionar aliases aos comandos comuns do Unix, para que os usuários do Unix ficassem mais confortáveis. technet.microsoft.com/en-us/library/dd347739.aspxAction-Object
estrutura, composta de um conjunto de ações e objetos também padronizados. Por exemplo, ambosls
edir
são aliases paraGet-ChildItem
(que também possuem o aliasgci
)mkdir
emd
são realmenteNew-Item
(que podem realmente criar muito mais do que apenas diretórios, devido à abordagem baseada em objetos do PowerShell) e assim por diante.Respostas:
O Windows
cmd.exe
não suportals
,mount
etc., a menos que você os tenha instalado e os tenha adicionado ao%PATH%
(via Cygwin, MinGW, Subsistema para aplicativos baseados em Unix (SUA) ou algo mais). Powershell faz. E isso ocorre porque o Powershell os tem como alias dos comandos padrão do Powershell, para que os usuários do Unix possam se sentir mais confortáveis. Veja a lista de aliases de compatibilidade no Powershell . O Windows temrmdir
,mkdir
etc. , mas esses, é claro, não suportam a mesma sintaxe de opção que você encontraria no Ubuntu.No Ubuntu, isso não tem nada a ver com o Bash. Todos são comandos externos. Existem padrões para esses utilitários. O POSIX é o mais notável (veja a lista de utilitários obrigatórios pelo POSIX ) e o Linux Standard Base (LSB) é outro importante para os sistemas Linux (que é principalmente baseado no POSIX, mas tem algumas adições ). Os do Ubuntu são fornecidos principalmente pelo GNU , e os utilitários do GNU geralmente têm mais recursos do que a base exigida pelo POSIX.
O POSIX também define a linguagem do shell que você mencionou (que é substancialmente diferente da linguagem
cmd.exe
). É derivado da sintaxe do shell Bourne . O Bash (agora você sabe a que o Bourne se refere novamente ), também do GNU, também adiciona recursos no topo, mas pode se comportar de maneira compatível com POSIX, quando necessário. A linguagem POSIX é o que você esperaria obtersh
.bash
,ksh
,ash
,dash
,zsh
Todo o uso que a linguagem, com melhorias.csh
está em um mundo próprio (pesadelo) etcsh
melhoracsh
.Para entender um pouco mais, veja a história dos sistemas Unix e similares . O Unix pré-data o Windows em 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, já que o governo dos EUA exigia isso para sistemas operacionais usados por agências governamentais (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.
Palavras-chave:
(Observe a parte comum desses posts - todos eles estão no Unix e Linux e histórico de tags - você pode achar que navegar nessa tag é muito informativo.)
fonte
rmdir
(juntamente commkdir
ecd / chdir
) são nativascommand.com
builtins uma vez que o MS-DOS 2.0 (não houve hierarquia no sistema de ficheiros DOS antes)rd
também foi um atalhomd
.sh
.bash
,ksh
,ash
,dash
,zsh
Todo o uso que a linguagem, com melhorias.csh
está em um mundo próprio (pesadelo) etcsh
melhoracsh
. O Windows obedeceu ao mesmo tempo ao POSIX, já que o governo dos EUA exigia isso para sistemas operacionais usados por agências governamentais (é daí que o SUA veio). Mas esse requisito foi descartado e, posteriormente, o SUA foi descartado.Simples:
O Linux é um sistema baseado no modelo UNIX, como inventado por Dennis Ritchie e Ken Thompson.
O Windows / DOS é uma imitação barata de um sistema chamado CP / M, que era popular nos anos 70 nos computadores antigos que você conectava à TV. Esse sistema, por sua vez, era uma imitação barata dos primeiros sistemas UNIX do final dos anos 60 / início dos anos 70 .
fonte