▣ MS OS ( DOS, Windows)에서 사용되는 내부명령어에 대해서 정리 - Chat GPT
리눅스의 Builtin명령어에 이어서 오랜동안 잊고 있었던 MS 운영체제 인 DOS와 Windows 에서 사용하고 있는 내부명령어에 대해서도 알아보았습니다.
MS-DOS 는 제 기억으로는 6.2 버전이 제가 사용했던 마지막 MS-DOS 였던 것으로 기억합니다.
그 시절에는 내부명령어는 COMMAND.COM 이라는 파일에 포함되어있어서 따로 실행파일이 필요하지 않는 명령어들!
이라고 알고 있었고, XCOPY.EXE 처럼 실행파일이 따로 존재해야만 사용이 가능한 명령어를 외부명령어 라고 알고있었습니다.
그래서 이 외부명령어를 내부명령어 처럼 자유롭게 사용하기 위해서는 경로설정을 해 줬어야 하는데요, 그게 바로 PATH 명령어로 경로를 지정해서 미리 알려주면 실행파일이 어느 경로에 저장되어있더라도 저장된 경로를 미리 지정해 주면 커서가 있는 위치에 상관없이 실행이 가능했습니다. 그런 추억들이 새록새록 기억나네요.
리눅스를 공부하면서 옛 기억이 떠올라서 MS-DOS와 Windows에서 사용하는 내부명령어도 한번 정리해 보았습니다.
너무 편하게 생각해서 잊혀지날 수 있는 것들을 이런식으로 잘 정리해서 다시한번 더 기억해 둔다면 공부에 많은 도움이 될 것 같습니다.
아래 내용은 MS‑DOS 6.x ~ Windows 10/11 명령 프롬프트(cmd.exe) 기준으로, 실행 파일(.exe) 없이 **셸 자체에 내장된 “내부 명령어(Internal Commands)”**를 용도·주요 옵션과 함께 정리한 것입니다. (PowerShell 전용 명령은 포함하지 않았습니다)
구분 내부 명령어 핵심 용도 대표 옵션·예시 비고·팁
파일·디렉터리 | DIR | 디렉터리 목록 | DIR /W /O:-N (넓게, 이름역순) | DIR /S 하위폴더 포함 |
CD / CHDIR | 작업 폴더 변경 | CD \Windows\System32CD .. | CD만 입력 → 현재 경로 표시 | |
MD / MKDIR | 새 폴더 생성 | MD Logs\2025 | 여러 단계 한 번에 생성 | |
RD / RMDIR | 빈 폴더 삭제 | RD /S /Q Temp (하위 포함·무질문) | /S 필수 시 주의 | |
DEL / ERASE | 파일 삭제 | DEL *.log /P /S | /F 강제, /Q 무질문 | |
COPY | 파일 복사 | COPY report.txt D:\Backup\ | 여러 파일 → 한 파일: COPY *.txt all.txt | |
XCOPY | 고급 복사 | XCOPY Src Dest /E /H /Y | 폴더 전체, 숨김 포함 | |
MOVE | 파일/폴더 이동·이름변경 | MOVE *.jpg Pictures\ | ||
ATTRIB | 속성 변경 | ATTRIB +R -H file.txt | 읽기전용(+R)·숨김(+H) | |
텍스트·출력 | TYPE | 파일 내용 표시 | TYPE readme.txt | |
MORE | 페이지 단위 출력 | `DIR /S | MORE` | |
ECHO | 문자열·ON/OFF | ECHO HelloECHO. (빈줄) | @ECHO OFF로 스크립트 헤더 | |
FIND | 문자열 검색 | FIND "ERROR" log.txt | 대소문자 구분: /I | |
FINDSTR | 고급 패턴 검색 | FINDSTR /R "^ERROR.*" log.txt | 정규식 지원 | |
시스템 정보·관리 | VER | OS 버전 | VER | |
VOL | 드라이브 볼륨 라벨 | VOL C: | ||
DATE / TIME | 시스템 날짜/시간 표시·수정 | DATE /T (표시만) | ||
CLS | 화면 지우기 | CLS | ||
PROMPT | 프롬프트 모양 변경 | PROMPT $P$G | 기본: C:\> 형 | |
PATH | 실행 경로 열람·설정 | PATH C:\Tools;%PATH% | 일시적(세션 한정) | |
SET | 환경 변수 열람·수정 | SET JAVA_HOME=C:\JDKSET (목록) | %VAR% 참조 | |
SETLOCAL/ENDLOCAL | 배치파일 내부 변수 범위 제한 | SETLOCAL ENABLEDELAYEDEXPANSION | ||
프로세스·작업 제어 | START | 새 창/프로세스 실행 | START notepad file.txt | /B 창 없이 |
CALL | 다른 배치 호출 | CALL build.bat param | ||
EXIT | 창 종료/코드 반환 | EXIT /B 0 | ||
PAUSE | “Press any key…” 대기 | PAUSE | 스크립트 일시정지 | |
SHIFT | 배치 인수 쉬프트 | SHIFT /2 | %3→%2 등 | |
CHOICE | 사용자 선택 입력 | CHOICE /C YN "Continue?" | %ERRORLEVEL% 반환 | |
GOTO | 레이블 분기 | GOTO :EOF | ||
IF | 조건 분기 | IF EXIST file.txt ( … ) | 문자열 비교: ==, /I | |
FOR | 반복 | FOR %%f IN (*.txt) DO ECHO %%f | /R 재귀 | |
네트워크 | IPCONFIG* | IP 정보 | IPCONFIG /ALL | *WinXP 이후 외부 EXE |
PING* | 네트워크 테스트 | PING 8.8.8.8 -n 5 | ||
NET | 공유·서비스 관리 | NET USE, NET START | ||
배치·디버그 | REM | 주석 | REM 설명 | ::도 가능 |
ERRORLEVEL(키워드) | 이전 명령 반환값 | IF ERRORLEVEL 1 … |
*별표 표시는 Windows 시대에 외부 EXE로 전환되었지만, DOS 시절에는 내부 명령어로 간주되던 경우가 있습니다.
특징 & 활용 노트
- 내부 명령어는 COMMAND.COM(DOS) 또는 cmd.exe 코드에 포함되므로 실행 속도가 빠르고, 부팅 디스크 최소 구성에서도 사용 가능.
- 환경 변수·프롬프트·폴더 변경처럼 셸 자체 상태를 바꾸는 작업은 반드시 내부 명령어여야 합니다.
- HELP <명령>으로 간단 매뉴얼, /? 옵션으로 상세 사용법을 확인할 수 있습니다.
- Windows 10 이후에도 PowerShell보다는 **레거시 배치 스크립트가 필요한 상황(부트 이미지, 자동화 레거시)**에서 여전히 중요합니다.
- 내부와 외부 명령이 이름을 공유하기도 하므로(FIND, SORT 등) **where <명령>**으로 실제 실행 파일 경로를 확인해 충돌을 피하세요.
이 표를 참고하면 DOS‑시절 스크립트부터 최신 cmd 자동화까지 내부 명령어를 효과적으로 활용할 수 있습니다!
* CMD.EXE /? 로 도움말을 확인해 보았습니다.
파일로 첨부 합니다.
*좀 더 특이한 것은 "PowerShell 전용 명령" 입니다. 이건 또 내부명령어와는 다른 명령어 체계를 사용하는 것 같습니다.
다음 포스팅에서는 "PowerShell 전용 명령"에 대해서 알아보겠습니다.
'정보보안' 카테고리의 다른 글
📚 TTL(Time To Live)란? - By Chat GPT (0) | 2025.04.29 |
---|---|
🚚 Windows에서 사용하는 PowerShell 명령어 정리- By Chat GPT (0) | 2025.04.24 |
📖 리눅스 내부 명령어- Shell Builtin 명령어 정리 ( By chat GPT) (0) | 2025.04.24 |
🧠리눅스에서 커널(Kernel)과 운영체제(OS)의 역할- Chat GPT (0) | 2025.04.23 |
🛡️ CentOS 7 오프라인 커널 업그레이드 방법-Chat GPT (0) | 2025.04.23 |