¿Por qué Windows y Ubuntu tienen comandos de shell similares?

13

Ubuntu tiene un bash (Bourne Again SHell) mientras que Windows tiene su shell propietario. De acuerdo con mi investigación, no existe un nombre para el lenguaje utilizado para las secuencias de comandos shell en Windows / Ubuntu. Se acaba de llamar scripting de shell.

¿Por qué Windows y amp; Las shells de Ubuntu entienden los mismos comandos, tales como: ls , mkdir , rmdir , mount y así sucesivamente?

¿Hay algún tipo de lingua franca para scripts de shell? Si es así, por favor dame más detalles.

    
pregunta Shady Programmer 24.02.2016 - 16:05

2 respuestas

44

Windows cmd.exe no admite ls , mount , etc., a menos que los haya instalado usted mismo y los haya agregado al %PATH% (a través de Cygwin, MinGW, Subsistema para aplicaciones basadas en Unix (SUA) o algo más). Powershell hace. Y eso es porque Powershell los tiene como alias de los comandos estándar de Powershell, para que los usuarios de Unix puedan sentirse más cómodos. Consulte la lista de Alias ​​de compatibilidad en Powershell . Windows tiene rmdir , mkdir , etc. , pero estos, por supuesto, no admite la misma sintaxis de opción que encontraría en Ubuntu.

En Ubuntu, estos no tienen nada que ver con Bash. Todos son comandos externos. Hay estándares para tales servicios. POSIX es el más notable (consulte la lista de POSIX- utilidades solicitadas ) y Linux Standard Base (LSB) es otro que es importante para los sistemas Linux (que se basa principalmente en POSIX, pero tiene algunas adiciones ). Los que están en Ubuntu son provistos principalmente por GNU , y las utilidades de GNU a menudo tienen más características que la requerida por POSIX.

POSIX también define el lenguaje de shell que mencionó (que es sustancialmente diferente del que en cmd.exe ). Se deriva de la sintaxis de Bourne shell . Bash (ahora usted sabe a qué se refiere el Bourne ), también de GNU, también agrega características en la parte superior, pero puede comportarse de manera POSIX cuando sea necesario. El lenguaje POSIX es lo que esperaría obtener con sh . bash , ksh , ash , dash , zsh todos usan ese idioma, con mejoras. csh está en un mundo (de pesadilla) propio, y tcsh mejora csh .

Para comprender un poco más, busque en el historial de Unix y sistemas de tipo Unix . Unix es anterior a Windows por más de una década, y estas utilidades aparecieron por primera vez en Unix.

Windows era, en algún momento, compatible con POSIX, ya que el gobierno de EE. UU. lo requería para los sistemas operativos utilizados por las agencias gubernamentales (fue entonces cuando agregaron los Servicios para Unix (SFU) , de donde vino el SUA mencionado en el primer párrafo). Pero ese requisito se eliminó, y posteriormente, se eliminó el SUA.

Relacionado:

(Observe la parte común de estas publicaciones: todas están en Unix & amp; Linux y etiquetados history - es posible que la navegación a través de esa etiqueta sea muy informativa.

    
respondido por el muru 24.02.2016 - 16:30
0

Simple:

Linux es un sistema basado en el modelo UNIX, inventado por Dennis Ritchie y Ken Thompson.

Windows / DOS es una copia barata de un sistema llamado CP / M que fue popular en la década de 1970 en esas viejas computadoras que enchufó en un televisor, este sistema a su vez fue una copia barata de los primeros sistemas UNIX de finales de los 60 / principios de los 70.

    
respondido por el delt 01.03.2016 - 20:14

Lea otras preguntas en las etiquetas