30 votos

¿Cuál es la diferencia entre el CMD y el símbolo del sistema en windows?

Hasta ahora, nunca he pensado (y nunca observado) que cmd y command son dos cosas diferentes. Así, son ellos?

Echa un vistazo a esta foto:

enter image description here

En realidad, yo suelo abrir cmd desde el cuadro de diálogo Ejecutar cada vez que quiero de línea de comandos (para Git/ VIM). Así que, me personalizar la posición de la pantalla, tipo de letra, color, etc. Hoy, yo, en cambio, escribió command en vez de en cmd y se encontró que hay algo nuevo en mi ventana. Tiene "DOS" en su ventana.

Así que, obviamente, no debe haber diferencia entre cmd y command. Me gustaría saber

  1. La diferencia entre ellos.
  2. Por qué Microsoft separado (Unix Y Linux sólo tiene un shell por defecto, Bash).

32voto

Ben Collins Puntos 11318

TL;DR

Cuando se ejecuta una versión de 32 bits del programa de la consola, es ejecutado por cmd; cuando se ejecuta una consola de 16-bit programa es ejecutado por command.

Detalles

Windows XP incluye un subsistema de apoyo mayores aplicaciones de 16 bits.

Viejo aplicaciones de 16 bits están disponibles como DOS y los programas de Windows. Programas de DOS, por su naturaleza, son aplicaciones de consola y ejecutar, en lo que parece el símbolo. Sin embargo en Windows de 32 bits de las aplicaciones de consola son muy similares y tienen el mismo aspecto.

El procesador de comandos/intérprete cmd tiene varios propósitos:

  • Para ejecutar de 32 bits de texto programa de consola para Windows
  • Proporcionar y controlar diversas funciones de línea de comandos (dir, copy, etc.)
  • Interpretar y ejecutar archivos por lotes (DOS compatibles .bat archivos de NT y compatibles .cmd archivos)

Cuando se ejecuta una vieja consola de 16-bit programa es ejecutado por el NTVDM (Windows NT Máquina DOS Virtual). Proporciona un emulador de sistema de ms-DOS (de ahí la máquina DOS virtual), que es similar a la ejecución de una dedicada software de máquina virtual, a excepción de la capa de emulación es más simple. command es una versión de 16 bits de los comandos de la intérprete, que está mucho más cerca de a DOS reales de cmd.exe que en realidad es un programa de Windows (Windows PE header, a diferencia command.com que tiene las DOS MZ encabezado).

command tiene la misma finalidad que la cmd , excepto que sólo es compatible con los programas de 16 bits. Además, no es compatible con .cmd archivos y tiene menos comandos integrados y es más limitada en su sintaxis (cmd es una nueva, más moderna, más avanzada intérprete de línea de comandos, similar a 4DOS).

Sin embargo, es compatible con gráficas de DOS programas (como los juegos antiguos), pero el éxito de su gestión depende de la tarjeta de video de los controladores y la naturaleza del programa. Existen numerosos sitios que ofrecen varios trucos para conseguir DOS juegos para ejecutarse en Windows (aunque el éxito en la Vista y generalmente es más limitado que en XP).

Cabe señalar que las versiones de 64 bits de Windows han abandonado por completo apoyo de los programas de 16 bits, y por lo tanto no incluyen command en todo, así que ni de DOS ni de Windows de 16 bits de los programas de ejecución y en su lugar se tiro de un (engañosa) mensaje de error.


Notas técnicas

command.com tiene un .com de la extensión de compatibilidad con programas de DOS, pero como la mayoría de las otras versiones de Windows externo de comandos de ms-DOS, internamente, en realidad, es un Windows PE .exe archivo. Esto proporciona la interesante observación de que mientras que Windows utiliza la extensión como un indicador de cómo manejar la mayoría de los tipos de archivos, ejecutables, ignora la extensión y mira a su contenido (de lo contrario .exe no funcionaría si se trata como un .com). Esta pregunta se refiere a este efecto.

8voto

Bon Gart Puntos 11454

A diferencia de COMMAND.COM, que es un programa de ms-DOS, cmd.exe es una aplicación nativa de Windows que se ejecutan en la consola de Win32. Esto le permite tomar ventaja de las características disponibles para los programas nativos en la plataforma en la que están disponibles para programas de DOS.

también...

Tanto el OS/2 y Windows NT versiones de cmd.exe tiene mensajes de error más detallados de la manta "Mala comando o nombre de archivo" (en el caso de malformación de comandos) de command.com.

Que a partir de este informativo artículo de la Wikipedia.

No hay mención de cómo un antiguo command.com los comandos se han rodado en los nuevos cmd.exe la funcionalidad de... por ejemplo...

la funcionalidad de deltree (command.com) fue rodada en rd (cmd.exe) en forma de parámetro /s

Así que siéntase libre de leer.

5voto

kinokijuf Puntos 5635

command.comes la shell de DOS, proporcionada por compatibilidad.

cmd.exees un programa Win32 nativo, heredado de OS/2.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: