Windows에서 CMD와 명령 프롬프트의 차이점은 무엇입니까?


30

지금까지, 나는 결코 생각하지 않았다 (및 관찰되지 않음) cmdcommand다른 두 가지가 있습니다. 글쎄요 ?

이 사진을 살펴보십시오.

여기에 이미지 설명을 입력하십시오

사실, 나는 일반적으로 cmd명령 줄을 원할 때마다 실행 대화 상자에서 열립니다 (Git / VIM 용). 그래서 표시 위치, 글꼴, 색상 등을 사용자 정의했습니다. 오늘, 변경을 위해 commandRun 대신에 입력 하여 cmd창에 새로운 것이 있음을 발견했습니다. 창에 "DOS"가 있습니다.

따라서 cmd와 사이에는 분명히 차이가 있어야합니다 command. 나는 알고 싶습니다

  1. 그들 사이의 차이점.
  2. Microsoft가 분리 한 이유 (Unix & Linux에는 기본적으로 Bash가 하나만 있습니다).

11
command.com레거시 16 비트 버전 이라고 가정 합니다 (32 비트 설치에서만 사용 가능). 64 비트 버전의 Windows 7에는 존재하지 않습니다.
Der Hochstapler

11
유닉스와 리눅스는 하나 이상의 쉘을 사용할 수 있습니다. 기본 쉘은 일반적으로 Bash입니다.
ephsmith

@ephsmith 그것이 내가 말한 것입니다.
Surya

"command prompt"라는 문구는 기술적으로 command.exe 또는 cmd.exe를 나타내는 데 사용될 수 있지만 실제로는 거의 항상 cmd.exe를 의미하는 데 사용됩니다.
Harry Johnston

유닉스에는 csh, ksh, bash, zsh의 총 4 개의 쉘이 있습니다.
Deb

답변:


31

TL; DR

32 비트 콘솔 프로그램을 실행하면 cmd; 16 비트 콘솔 프로그램을 실행하면에 의해 실행됩니다 command.

세부

Windows XP에는 이전 16 비트 응용 프로그램을 지원하는 하위 시스템이 포함되어 있습니다.

이전 16 비트 응용 프로그램은 DOS 및 Windows 프로그램으로 사용할 수 있습니다. DOS 프로그램은 본질적으로 콘솔 응용 프로그램이며 명령 프롬프트처럼 보이는 방식으로 실행됩니다. 그러나 32 비트 Windows 콘솔 응용 프로그램은 매우 유사하며 동일하게 보입니다.

명령 프로세서 / 인터프리터 cmd에는 여러 가지 목적이 있습니다.

  • 32 비트 텍스트 Windows 콘솔 프로그램을 실행하려면
  • 제공하고 다양한 명령 줄 기능을 처리하기 위해 ( dir, copy, 등)
  • 배치 파일 (DOS 호환 .bat파일 및 NT 호환 .cmd파일) 해석 및 실행

이전 16 비트 콘솔 프로그램을 실행하면 NTVDM (Windows NT Virtual DOS Machine)에 의해 실행됩니다. 에뮬레이션 계층이 더 단순하다는 점을 제외하고는 전용 가상 머신 소프트웨어를 실행하는 것과 유사한 에뮬레이트 된 DOS 시스템 (따라서 가상 DOS 머신 )을 제공합니다. command16 비트 버전의 명령 해석기 cmd.exe는 실제 Windows 프로그램 보다 실제 DOS에 훨씬 더 가깝습니다 ( command.comDOS MZ 헤더가있는 것과 달리 Windows PE 헤더 가 있음).

commandcmd16 비트 프로그램 만 지원한다는 점 을 제외하고 동일한 목적을가집니다 . 또한 .cmd파일을 지원하지 않으며 기본 제공 명령이 적으며 구문이 더 제한적입니다 ( 4DOScmd 와 유사한 새롭고 현대적인 고급 명령 줄 해석기 임).

그러나 이전 게임과 같은 그래픽 DOS 프로그램을 지원하지만, 비디오 카드 드라이버와 프로그램의 특성에 따라 성공적으로 실행됩니다. Windows에서 DOS 게임을 실행하기 위한 다양한 트릭 을 제공하는 수많은 사이트가 있습니다 (Vista 이상에서는 일반적으로 XP보다 성공이 제한적 임).

64 비트 버전의 Windows는 16 비트 프로그램에 대한 지원을 완전히 중단 했으므로 전혀 포함하지 않으므로 commandDOS 나 Windows 16 비트 프로그램이 실행되지 않고 대신 오도하는 오류 메시지가 표시됩니다. .


기술 노트

command.com.comDOS 프로그램과 이전 버전과의 호환성에 대한 확장을하지만, 외부 DOS의 다른 Windows 버전의 대부분의 명령처럼, 내부, 실제로 윈도우 PE의입니다 .exe파일. 이것은 Windows가 확장명을 대부분의 파일 유형을 처리하는 방법의 표시 자로 사용하지만 실행 파일의 경우 확장명을 무시하고 내용을 봅니다 (그렇지 않으면 .exea로 처리하면 작동하지 않음) 는 흥미로운 관찰 결과를 제공합니다 .com. 이 질문 은이 효과와 관련이 있습니다.


물론 cmd.exe에서 32 비트 콘솔 프로그램을 실행할 수 있지만 반드시 그럴 필요는 없습니다. 콘솔 모드 실행 파일을 두 번 클릭하면 "내부"cmd.exe가 실행되지 않습니다. 마찬가지로 command.exe는 NTVDM과 동일하지 않습니다.
Harry Johnston

1
나는 command-name으로 문장을 시작하는 것을 싫어합니다.
Synetech

> command.exe는 NTVDM과 실제로 같은 것은 아니지만 여러 DLL과 함께 그 일부 입니다 (XP 시스템에서 16 비트 콘솔 앱을 사용하려고 시도하는 동안 어려운 방법을 배웠습니다) ).
Synetech

"DOS 프로그램은 본질적으로 콘솔 응용 프로그램입니다 "– 왜 이런 말을 하시겠습니까? 비 커맨드 라인 비 TUI DOS 앱은 어떤 방식으로 '부 자연스러운'가요? :)
Karan

Why would you say this? Are non-command line non-TUI DOS apps 'unnatural' in some way? 일종의. 9x에서는 문제가 없었지만 XP +에서는 그래픽 응용 프로그램 (예 : 게임)이 더 이상 제대로 작동하지 않기 때문에 요즘 Windows에서 실행되는 대부분의 DOS 응용 프로그램은 실제로는 명령 줄 도구가 아닙니다. 본격적인 그래픽 앱. 64 비트 컴퓨터에서 16 비트 앱은 기본적으로 전혀 실행되지 않지만, 특히 Vista는 전체 화면 콘솔에 대한 지원중단 했기 때문에 32 비트 앱도 일반적으로 콘솔 앱 입니다.
Synetech

8

DOS 프로그램 인 COMMAND.COM과 달리 cmd.exe는 일반적으로 Win32 콘솔에서 실행되는 기본 Windows 응용 프로그램입니다. 이를 통해 플랫폼의 기본 프로그램에서 사용 가능한 기능을 DOS 프로그램에서 사용할 수없는 기능을 활용할 수 있습니다.

또한...

cmd.exe의 OS / 2 및 Windows NT 버전 모두 command.com의 "잘못된 명령 또는 파일 이름"(잘못된 명령의 경우) 담요보다 자세한 오류 메시지가 있습니다.

유익한 Wikipedia 기사 에서 발췌 한 것입니다.

예를 들어 이전 command.com 명령이 최신 cmd.exe 기능으로 롤백 된 방법에 대한 언급이 있습니다.

deltree (command.com)의 기능은 / s 매개 변수 형식으로 rd (cmd.exe)로 롤백되었습니다.

따라서 자유롭게 읽으십시오.


5

command.com 호환성을 위해 제공된 DOS 쉘입니다.

cmd.exe OS / 2에서 상속 된 기본 Win32 프로그램입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.