명령 프롬프트

 


'''C'''o'''m'''man'''d''' Prompt / 명령 프롬프트
1. 개요
2. 설명
3. 활용성
4. 여는 법
5. 여담
7. 관련 문서


1. 개요


Microsoft Windows의 기본 유틸리티로, Windows NT 계열 OS의 커맨드라인 해석기(CLI)다.
명령 프롬'''포'''트가 아니라 명령 프롬'''프'''트이다. 잘못 부르는 사람들이 의외로 '''아주''' 많아서 그런지 나무위키 리다이렉트로도 만들어진 상태다.

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가 아니다. 일부 컴공과 교수까지 '도스창' 이라고 칭할 정도니...[1]
Windows 9x 계열의 운영체제 안에서 보조프로그램의 MS-DOS 프롬프트는 MS-DOS의 기본 셸인 COMMAND.COM을 실행하는 것이었다. Windows NT의 명령 프롬프트는 cmd.exe라는 셸을 실행한다.
Windows 10 Redstone 1703 빌드에서 PowerShell이 기본값이 되었다. 물론 개인 설정에서 다시 이전의 명령 프롬프트로 되돌리는 것은 가능하다. 또한 PowerShell에서 cmd를 입력하면 명령 프롬프트를 그 자리에서 사용할 수 있다.
여담으로 Windows 10 현재도 32비트 OS이면 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)에 의해 에뮬레이션 형식으로 돌아간다.[2] 64비트 Windows에는 더 이상 NTVDM이 탑재되지 않는다. x86-64 long 모드에서는 고대유물인(386 때 도입됐다!) 가상 8086 모드가 지원되지 않기 때문. 때문에 cmd에서 곧바로 16비트 DOS 프로그램을 돌릴 수 없으며, DOSBox 등의 별도 가상화 프로그램을 사용해야 한다.

4. 여는 법


  • 윈도우 키 + R → <실행> 창이 뜨면 'cmd' 입력 후 엔터.
  • 윈도우 키 + X → C (일반), 또는 A나 X (관리자 권한). (윈도우 8.1, 10 한정)[A]
  • 윈도우(창문모양) 키를 누른 뒤 바로 키보드로 'cmd' 입력 후 엔터. (윈도우 Vista, 7, 10 한정)
  • 또는 시작 메뉴를 통해 접근 가능
  • 해당 폴더에서 바로 명령 프롬프트를 구동하고 싶다면 Shift + 우클릭 후 '여기서 명령 창 열기' 선택(Windows Vista 이상 한정)[A]
윈도우 9x의 경우 해당 폴더를 열고 실행 창에서 command를 친다.
  • PowerShell실행 후 cmd 입력 (PowerShell 내장 윈도우 한정)
주의할 것이 있다. 일반 계정에서 위에서의 윈도우 키를 사용하는 과정에서 바로 엔터를 누르면, 권한이 제한되어 CMD의 기능이 일부만 작동된다. (특히 윈도우7) 그러므로 가급적 관리자 계정에서 명령 프롬프트를 사용하거나, 엔터를 치기 전에 cmd.exe를 마우스 오른쪽 버튼을 눌러서 '관리자 권한으로 실행' 을 누른다. 물론 단순히 디렉토리 탐색 같은 작업은 지장 없다.

5. 여담


cmd를 통해 내 컴퓨터의 운영체제를 지워버릴 수 있다. 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] 콘솔 속성에서 전체 화면 모드 설정이 가능하다! 다만 전체 화면용 한글 글꼴이 없어서 한글이 깨진다. 대부분의 컴퓨터에서는 도스 프로그램이 정상 작동하지 않는다. 다만 일부 컴퓨타에서 한메타자교사와 HBIOS 1.20a와 하늘소의 하늘이 작동하는 것이 확인되었다. 게다가 자체 한글 글꼴을 사용하는 프로그램은 한글이 잘 뜬다! 윈도우 7에서 윈도우 2.03을 실행할 경우 윈도우 2.0에서 블루스크린을 띄운다. (비프음은 나오지 않는다.) 윈도우 10은 아예 전체화면 작동 방식이 바뀌어서 도스를 쓰는 듯한 느낌은 더 이상 볼 수 없게 되었다. 다만 윈도우 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와 달리 별로 주목을 받지 못하는 것으로 보인다.
ConEmu라는 서드파티 cmd 프로그램이 있다. 윈도우에서 기본적으로 지원하는 cmd는 리눅스 터미널에 비하면 이런저런 기능이 매우 부족한데, ConEmu를 통해 다소 모자랐던 cmd의 기능들을 대부분 사용할 수 있다.
마이크로소프트에서 공식적으로 기존의 conhost.exe[4]를 대체할 새로운 CLI인 'Windows Terminal'을 만들고 있다. #1 #2 자세한 내용은 깃허브를 참조. 링크에서 프리뷰 버전을 체험할 수 있다. Windows 10 1903 이상의 버전을 사용 중이라면 가능하니 궁금하다면 마이크로소프트 스토어에서 내려받아 쓰면 된다.
Windows Terminal은 PoweShell, cmd 뿐만 아니라 WSL로 추가된 Bash 셸까지 모두 하나의 창 안에서 사용할 수 있게 해 준다.
현재 엔터프라이즈 버전에서 1.0버전을 사용할 수 있다.

6. 명령


명령 프롬프트/명령어 문서를 참조하십시오.

7. 관련 문서



[1] 다만 이는 진짜 도스라고 알고있는게 아니라 과거부터 부르는게 익숙해져서다.[2] 다만 이게 SMT나 드라이버를 가리는것으로 악명이 높은지 Windows XP가 설치된 기존 컴퓨터에서는 잘만 실행되던 게임이 새 컴퓨터로 바꾸면 오류를 뿜어대며 실행이 안된다(...)[A] A B 간혹 PowerShell으로 되어 있는 경우도 있다. 이는 Windows 10 레드스톤 1703 빌드부터 윈도우의 기본 CLI 셸이 되었기 때문. 레지스트리 편집기에서 바꿀 수 있다. 그런데 가끔 PowerShell과 명령 프롬프트가 같이 있는 경우도 있다.[3] Windows 8은 안 될 가능성이 높다. 그리고 최신 드라이버에서도 전체화면이 가능한 경우가 '''가끔''' 있다.[4] 사실 cmd.exe를 비롯해서 도스 프로그램과 콘솔 프로그램은 자체는 창을 가지지 않는다. 그래서 I/O 기반 통신으로 conhost.exe에 화면 출력을 위임하는 구조다. 다만 Windows Vista까지는 csrss.exe가 담당한다.

분류