Linguagens de programação, acesso ao shell do Linux e do Windows

Linguagens de programação, acesso ao shell do Linux e do Windows

Qual é a diferença entre a ferramenta de acesso shell do Linux e do Windows?

Em algumas linguagens de programação (linguagens web da minha experiência) quando você precisa executar algum comando - você precisa especificar o caminho para cmd.exe no Windows, enquanto no Linux você acessa o shell imediatamente... Qual e por que é a diferença? O que exatamente os idiomas atingem em ambos os sistemas quando você executa algum tipo de os.execute()comando?

EDIT: Esta é uma questão bastante teórica e não está relacionada às práticas de programação. Eu percebo que esse tópico pode não ser simples de explicar, então vincular ou mostrar a direção certa para se aprofundar também resolverá o problema.

Aqui está um dos exemplos de coldfusion (que é estranho e estranho, devo dizer):

<cfexecute name="C:\Windows\System32\cmd.exe" arguments="echo Hm" />

Responder1

Bem, vou tentar ser simples (assunto amplo)

A diferença entre windows e linux é clara, o núcleo não é o mesmo, não irei na direção da história (confira na wikipedia se estiver curioso;), mas o linux tende a preferir o script porque isso permite ao usuário customizar a instalação ou o SO como quiser, o windows usa .exe que modifica a chave de registro para executar o programa.

Quanto ao motivo pelo qual você precisa digitar o caminho inteiro para executar o Windows exe, é bastante simples (não vou entrar em uma explicação muito chata), o Windows realmente não usa a variável global (explicação fácil: a chave de registro realmente não precisa isso para operar o exe), embora o Linux tenda a adorar variáveis ​​​​globais, na verdade você pode facilmente adicionar variáveis ​​​​globais no Linux que apontam para o seu script.

Então, quando você quiser executar um script Linux, você digita cmd (apontando para a variável global que contém o caminho) e então a mágica começa. Para windons você é a variável global, então você precisa definir o caminho para o exe ser executado. Você pode criar sua própria variável global no Windows e usá-la como o Linux, se quiser, mas pessoalmente não gosto de fazer isso.

Espero que você entenda um pouco melhor o princípio.

Responder2

São plataformas completamente diferentes e a maioria dos comandos executados através de seus respectivos shells seriam incompatíveis, com exceção deCygwinno Windows, que usa os mesmos comandos de um shell Linux.

Como regra geral, tente evitar o uso de chamadas específicas do sistema operacional sempre que possível.

Responder3

De dentro do python posso dizer:

>>> rc = os.system('echo yes')
yes
>>>

Isso funcionará da mesma forma no Windows, Linux ou qualquer variante do Unix.

Acho que o fenômeno que você observou é específico da portabilidade da linguagem em questão.

E observe que o subconjunto de sequências de comandos que produziriam resultados idênticos é muito limitado. Windows e Unix têm poucos comandos em comum.

informação relacionada