Hasta ahora, nunca pensé (y nunca observé) eso cmd
y command
son dos cosas diferentes. Bueno, son ellos?
Echa un vistazo a esta foto:
En realidad, generalmente abro cmd
desde el cuadro de diálogo Ejecutar cuando quiero en la línea de comandos (para Git / VIM). Entonces, personalicé la posición de visualización, la fuente, el color, etc. Hoy, para variar, escribí command
Ejecutar en lugar de cmd
y encontré que hay algo nuevo en mi ventana. Tiene "DOS" en su ventana.
Entonces, obviamente debería haber una diferencia entre cmd
y command
. Me gustaría saber
- La diferencia entre ellos.
- Por qué Microsoft los separó (Unix y Linux solo tiene un shell por defecto, Bash).
windows
command-line
shell
ms-dos
Surya
fuente
fuente
command.com
es la versión heredada de 16 bits (solo disponible en instalaciones de 32 bits). No existe en mi versión de 64 bits de Windows 7.Respuestas:
TL; DR
Cuando ejecuta un programa de consola de 32 bits, lo ejecuta
cmd
; cuando ejecuta un programa de consola de 16 bits, lo ejecutacommand
.Detalles
Windows XP incluye un subsistema para admitir aplicaciones antiguas de 16 bits.
Las aplicaciones antiguas de 16 bits están disponibles como programas DOS y Windows. Los programas de DOS por su naturaleza son aplicaciones de consola y se ejecutan en lo que parece el símbolo del sistema. Sin embargo, las aplicaciones de consola de Windows de 32 bits son muy similares y tienen el mismo aspecto.
El procesador / intérprete de comandos
cmd
tiene varios propósitos:dir
,copy
, etc.).bat
archivos compatibles con DOS y.cmd
archivos compatibles con NT )Cuando ejecuta un antiguo programa de consola de 16 bits, lo ejecuta NTVDM (máquina virtual de Windows NT de DOS). Proporciona un sistema DOS emulado (de ahí la máquina virtual DOS ) que es similar a ejecutar un software de máquina virtual dedicado, excepto que la capa de emulación es más simple.
command
es una versión de 16 bits del intérprete de comandos que está mucho más cerca del DOS real que elcmd.exe
que es en realidad un programa de Windows (y tiene el encabezado de Windows PE, a diferencia delcommand.com
que tiene el encabezado de DOS MZ).command
tiene los mismos propósitos,cmd
excepto que solo admite programas de 16 bits. Además, no admite.cmd
archivos y tiene menos comandos integrados y su sintaxis es más limitada (cmd
es un intérprete de línea de comandos más nuevo, más moderno y más avanzado, similar a 4DOS ).Sin embargo, es compatible con programas gráficos de DOS (como juegos antiguos), pero el éxito de su ejecución depende de los controladores de la tarjeta de video y de la naturaleza del programa. Existen numerosos sitios que ofrecen varios trucos para que los juegos de DOS se ejecuten en Windows (aunque el éxito en Vista y versiones posteriores suele ser más limitado que en XP).
Cabe señalar que las versiones de Windows de 64 bits han dejado de admitir completamente los programas de 16 bits, por lo que no se incluyen
command
en absoluto, por lo que ni los programas de DOS ni Windows de 16 bits se ejecutarán y en su lugar arrojarán un mensaje de error (engañoso) .Notas técnicas
command.com
tiene una.com
extensión para la compatibilidad con los programas de DOS, pero como la mayoría de las otras versiones de Windows de comandos externos de DOS, internamente, en realidad es un.exe
archivo de Windows PE . Esto proporciona la observación interesante de que si bien Windows usa la extensión como un indicador de cómo manejar la mayoría de los tipos de archivos, para los ejecutables, ignora la extensión y mira su contenido (de lo contrario.exe
, no funcionaría si se tratara como a.com
). Esta pregunta se relaciona con este efecto.fuente
Why would you say this? Are non-command line non-TUI DOS apps 'unnatural' in some way?
Más o menos. En 9x, estaban bien, pero las aplicaciones gráficas (p. Ej., Juegos) ya no funcionan correctamente en absoluto en XP +, por lo que la gran mayoría de las aplicaciones de DOS que se ejecutan en Windows (de forma nativa) actualmente son herramientas de línea de comandos en lugar de Aplicaciones gráficas completas. En las máquinas de 64 bits, las aplicaciones de 16 bits no se ejecutan de forma nativa en absoluto, pero incluso aplicaciones de 32 bits están generalmente consola aplicaciones, especialmente desde Vista abandonado el soporte para pantalla completa consolas .además...
Eso es de este artículo informativo de Wikipedia.
Se menciona cómo los comandos command.com más antiguos se han incorporado a la funcionalidad cmd.exe más nueva ... por ejemplo ...
Entonces, siéntase libre de leer.
fuente
command.com
es el shell de DOS, proporcionado por compatibilidad.cmd.exe
es un programa nativo de Win32, heredado de OS / 2.fuente