매킨토시의 키보드 키에 대한 내용은 커맨드 문서
의 키보드의 글쇠 부분을
참고하십시오.Windows 11 Sun Valley 2의 명령 프롬프트[1] |
Windows 11 Sun Valley 2의 명령 프롬프트 (관리자 권한) |
{{{#!folding 이전 버전 [ 펼치기 · 접기 ]
Windows 10 22H2의 명령 프롬프트 |
Windows 10 21H2 (영문 버전)의 명령 프롬프트 |
1. 개요
명령 프롬프트(Command Prompt, cmd.exe)는 Microsoft Windows의 기본 유틸리티로, Windows NT 계열 운영 체제의 명령줄 인터페이스(CLI)이다. 윈도우 명령어 처리기(Windows Command Processor)라고도 불린다.명령 프롬포트가 아니라 명령 프롬프트이다. 잘못 부르는 사람들이 의외로 아주 많아서 그런지 나무위키 리다이렉트로도 만들어진 상태다.
2. 설명
구조상 MS-DOS 위에서 작동했던 Windows 9x의 내부에서는 'MS-DOS 프롬프트(MS-DOS Prompt)'라는 이름으로 MS-DOS 7.x~8.x을 썼는데, 이후 Windows NT 계열에서는 MS-DOS가 쓰이지 않기 때문에 일부 사용자들의 편의를 위해 MS-DOS의 CLI 인터페이스를 가져와 명령 프롬프트를 도입하게 된다. 1990년대 이전부터 컴퓨터를 써 온 세대는 명령 프롬프트를 비공식적으로 여전히 DOS라고 부르는 경우가 많고, 실제로 DOS라고 오해하는 경우도 많으나, 사실 Windows NT 계열에서는 진짜 DOS 기반의 프로그램이 아니라 DOS를 모방한 텍스트 기반 유틸리티일 뿐이지만 일부 컴공과 교수까지 '도스창' 이라고 칭할 정도이다. 다만 이는 진짜 도스라고 알고 있는 게 아니라 과거부터 부르는 게 익숙해져서이다.Windows 9x 계열의 운영 체제 안에서 보조프로그램의 MS-DOS 프롬프트는 MS-DOS의 기본 셸인 COMMAND.COM을 실행하는 것이었다. Windows NT의 명령 프롬프트는 cmd.exe라는 셸을 실행한다.
Windows 10 1703부터 PowerShell이 기본값이 되었다. 물론 개인 설정에서 다시 이전의 명령 프롬프트로 되돌리는 것은 가능하다. 또한 PowerShell에서 cmd를 입력하면 명령 프롬프트를 그 자리에서 사용할 수 있고, 명령 프롬프트에서 powershell을 입력하면 그 자리에서 사용하는 것도 가능하다.
여담으로 Windows 10에서도 32비트 운영 체제라면 COMMAND.COM이 남아있다.
3. 활용성
명령 프롬프트는 Windows에 기본으로 제공되는 프로그램이다. Windows에서 CLI 기반의 명령어를 입력하여 수행할 수 있게 해 주는 셸로, 이를 통해 배치 파일 제작 및 명령어 입력 등 다양한 작업들을 할 수 있다. help를 입력하면 명령 프롬프트에서 제공하는 명령의 목록을 볼 수 있다. 물론 명령 프롬프트가 자체적으로 지원하는 명령 외에도 Windows에서 제공하는 여러 명령줄 프로그램을 사용할 수도 있다. 명령어는 MS-DOS와 호환되고 외형도 거의 같다. MS-DOS를 사용해봤다면 명령 프롬프트에도 잘 적응하게 된다. 명령 프롬프트와 MS-DOS가 동일하다는 착각을 심어주는 주 요인이기도 하다. 그런데 어떤 출판사의 컴퓨터활용능력 필기 교재(그 분야 베스트셀러)에서는 명령 프롬프트를 일종의 MS-DOS인 것마냥 잘못 설명한다.실행하려는 명령어 여러 개를 하나의 텍스트 파일에 입력하여 저장한 뒤 한꺼번에 실행할 수 있는데, 이러한 파일을 배치 파일(Batch file)이라고 한다. 기본적으로는 여러 명령줄을 순차적으로 실행할 수 있지만, if나 goto와 같은 명령어를 이용하면 간단한 프로그램을 만들 수도 있다.
DOS 기반 Windows였던 9x/ME까지는 진짜 MS-DOS 상에서 돌아갔고 이름도 MS-DOS 프롬프트였지만, NT 커널 기반 Windows(NT 3.1~4.0 및 2k 이후의 모든 버전)부터는 MS-DOS와는 전혀 상관없이 돌아간다. 명령 프롬프트에서 16비트 MS-DOS 프로그램을 실행했을 경우 NTVDM(NT Virtual DOS Machine)에 의해 에뮬레이션 형식으로 돌아간다. 다만 이게 SMT나 드라이버를 가리는 것으로 악명이 높은지 Windows XP가 설치된 기존 컴퓨터에서는 잘만 실행되던 게임이 새 컴퓨터로 바꾸면 오류를 뿜어대며 실행이 안 된다. 64비트 Windows에는 더 이상 NTVDM이 탑재되지 않는다. x86-64 long 모드에서는 고대유물인(386 때 도입됨) 가상 8086 모드가 지원되지 않기 때문이다. 때문에 cmd에서 곧바로 16비트 DOS 프로그램을 돌릴 수 없으며, DOSBox 등의 별도 가상화 프로그램을 사용해야 한다.
4. 여담
명령 프롬프트를 통해 내 컴퓨터의 운영 체제를 지워버릴 수 있다. cmd /c rd /s /q c:\가 대표적인 예시이다. 절대로 다른 컴퓨터나 계속 써야 하는 컴퓨터에는 입력하지 말자!Windows 10부터 Ctrl CV를 지원한다. 그 이전까지는 LCtrl + C, V를 눌러도 붙여넣기가 되지 않았으며, 마우스 우클릭 시 나오는 메뉴에서 '붙여넣기'를 선택해야 했다. 그 이유는 DOS 시절부터 LCtrl + C는 프로그램 종료 기능으로 예약된 단축키였기 때문이다. Windows 10에서 LCtrl + C, V를 다시 비활성화할 수 있다.
Windows 7은 전체 화면 모드를 지원하지 않는다는 말이 있는데, 32비트는 사실 그래픽 드라이버가 지원하지 않는 것이다. 그래픽 카드 드라이버를 지워서 표준으로 만들면 콘솔 속성에서 전체 화면 모드 설정이 가능하다. 다만 전체 화면용 한글 글꼴이 없어서 한글이 깨진다.[3] Windows 8은 안 될 가능성이 높다. 그리고 최신 드라이버에서도 전체 화면이 가능한 경우가 가끔 있다. 대부분의 컴퓨터에서는 도스 프로그램이 정상 작동하지 않지만, 일부 컴퓨터에서 한메타자교사와 HBIOS 1.20a와 하늘소의 하늘이 작동하는 것이 확인되었다. 게다가 자체 한글 글꼴을 사용하는 프로그램은 한글이 잘 뜬다. Windows 7에서 윈도우 2.03을 실행할 경우 윈도우 2.0에서 블루스크린을 띄운다(비프음은 나오지 않는다). Windows 10은 아예 전체 화면 작동 방식이 바뀌어서 도스를 쓰는 듯한 느낌은 더 이상 볼 수 없게 되었다. 다만 Windows 7의 경우 64비트는 OS가 지원하지 않는 것이 맞는다.
Windows CE 5.0 Core 이상 버전부터 명령 프롬프트를 탑재했다. Windows 폴더에 cmd.exe가 있으며 실행창에서 'cmd'를 입력해서 실행할 수 있다. 하지만 CE 버전 CMD는 일반 CMD에 비하면 명령어가 많이 빠졌거나 기능이 심하게 빠졌다. 예를 들어 FOR 명령은 아예 없으며 IF 명령어는 ELSE 등이 지원되지 않거나 SET 명령어의 계산 기능(/A), 추가 입력 기능(/P)도 없다. 심지어는 GOTO 명령어 등으로 루프를 돌릴 때 구문이 약간만이라도 어긋나거나 에러가 발생하기만 해도 CPU 사용량이 미칠 듯이 100%로 올라가며, 커널 패닉까지는 안 가지만 기기 자체가 먹통이 된다. 애초에 임베디드 기기 특성상 CPU 처리 속도가 떨어지다 보니 무한 루프를 견딜 수가 없는 것이다. 사실 SET 계산식도 지원되지 않으므로 루프 돌릴 일이 많이 없기도 하지만 파일 작성 등을 하고 처음으로 되돌아 가는 루프 등을 구현했을 때 조심해야 한다. 기기 먹통까지 가면 하드웨어적으로 종료 명령을 내려도 소용이 없어서 기기 리셋밖에는 답이 없어지기 때문에, Windows CE용 배치 파일 작성 시 참고해야 한다.
MS-DOS 시절 COMMAND.COM를 대체하는 인터프리터로 JP 소프트웨어(JP Software)의 4DOS(파일명: 4DOS.COM)이 있었는데, 이것을 계승하는 명령 프롬프트 대체물로 Take Command(구칭 4DOS for Windows NT, 줄여서 4NT)라는 프로그램이 현재도 상용으로 판매되고 있다. 하지만 과거 MS-DOS 시절 파워 유저에게 유명했던 4DOS와 달리 별로 주목을 받지 못하는 것으로 보인다.[4]
ConEmu라는 서드파티 cmd 프로그램이 있다. 윈도우에서 기본적으로 지원하는 명령 프롬프트는 리눅스 터미널에 비하면 이런저런 기능이 매우 부족한데, ConEmu를 통해 다소 모자랐던 명령 프롬프트의 기능들을 대부분 사용할 수 있다. 또한 단축키 하나로 명령창을 뜨게 하고 다시 숨기게 하는 기능을 사용할 수 있다.
Windows 9x의 MS-DOS창과는 다르게 폰트가 VGA에 맞춰져있어 16:10 비율의 칭크기로 실행된다.[5]
4.1. Windows Terminal
자세한 내용은 Windows Terminal 문서 참고하십시오.명령 프롬프트를 실행시키면 위와 같이 덩그러니 터미널 에뮬레이터 창이 하나 뜬다. 이를 마이크로소프트에서 개선하여 개발하고 있는 터미널 에뮬레이터가 윈도우 터미널(Windows Terminal)이다. 마이크로소프트에서 공식적으로 기존의 Windows Console(conhost.exe)를 대체할 새로운 CLI로 만들고 있으며 github에 오픈 소스로 공개되어 있다.[6] 사실 cmd.exe를 비롯해서 도스 프로그램과 콘솔 프로그램은 자체는 창을 가지지 않아서 I/O 기반 통신으로 conhost.exe에 화면 출력을 위임하는 구조이다. 다만 Windows Vista까지는 csrss.exe가 담당한다.
Windows Terminal 관련 자세한 내용은 깃허브에 있다. 링크에서 프리뷰 버전을 체험할 수 있다. Windows 10 1903 이상의 버전을 사용 중이라면 가능하니 궁금하다면 Microsoft Store에서 내려받아 쓰면 된다.
Windows Terminal은 PoweShell, 명령 프롬프트뿐만 아니라 WSL로 추가된 Bash 셸까지 모두 하나의 창 안에서 사용할 수 있게 해 준다. 현재 엔터프라이즈 버전에서 1.0 버전을 사용할 수 있다.
Windows 11에서 Windows Terminal이 기본 탑재되었다.
5. 명령
자세한 내용은 명령 프롬프트/명령어 문서 참고하십시오.6. 관련 문서
[1] Windows Terminal을 통해 실행한 것으로, 이전 윈도우들과 달리 직접 글꼴을 설정할 수 있다. 참고로 Windows Terminal은 윈도우 10에서도 사용 가능하다.[2] 윈도우 명령어 처리기(Windows Command Processor)라고도 불린다.[3] [4] 정품인증 방식의 경우, iphlapi.dll이라는 이름의 라이브러리 하나에 의존한다.[5] Windows 9x에서는 일본어를 제외한 MS-DOS창이 MDA/CGA기반 폰트여서 2바이트언어판은 가독성이 떨어져서 창 크기를 일일이 조절해야했다.[6] #1 #2