Tuesday, June 27, 2006
command.com / cmd.exe 에 내장되어 있지 않아 별도의 파일이 있어야 실행되는 명령어는?
그런 것을 외부 명령어 (External Command) 라고 합니다.
도스나 윈도98의 셀은 command.com
윈도우 2000/XP 이상의 셀은 cmd.exe 입니다.
셀이란 '명령어 처리기'입니다. 가령 도스창 또는 '명령 프롬프트' 에서 dir 이라는 명령을 주었다면 '명령어 처리기'가 dir 이라는 명령을 처리하게 됩니다. 만약 명령어 처리기가 없다면 컴퓨터는 dir 이라는 명령이 무슨 명령인지 몰라서 처리하지 못합니다.
파일의 목록을 보여주는 dir 명령은 '내부 명령어(Internal Command)'이기에 command.com / cmd.exe 에 내장되어 있습니다. 그래서 command.com / cmd.exe 가 직접 결과를 출력합니다.
그러나 find 명령은 '외부 명령어'이기에, command.com / cmd.exe 에 내장되어 있지 않습니다. 그래서 command.com / cmd.exe 가 하드에 있는 find.exe 라는 별도의 파일을 자동으로 불러서 실행시킵니다.
사용자 입장에서는 외부 명령어와 내부 명령어는, 거의 구분이 가지 않습니다. 그리고 'C언어'를 사용해서, 사용자가 직접 외부 명령어를 만들어 추가할 수도 있습니다.
대표적인 외부 명령어들:
find.exe - 파일에서 텍스트 문자열을 찾습니다.
FORMAT.COM - 디스크를 포맷합니다.
DISKCOMP.COM - 두 플로피 디스크의 내용을 비교합니다.
DISKCOPY.COM - 플로피 디스크의 내용을 다른 플로피 디스크로 복사합니다.
doskey.exe - 명령 줄을 편집하고, Windows 2000 명령을 다시 호출하고, 매크로를 만듭니다.
mode.com - 시스템 장치를 구성합니다.
more.com - 출력을 한번에 한 화면씩 표시합니다.
sort.exe - 입력을 정렬합니다.
tree.com - 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 화면에 표시합니다.
xcopy.exe - 파일과 디렉터리 트리를 복사합니다.
외부 명령어들은 윈도가 설치된 폴더 밑의 system32 폴더 속에 들어 있습니다. (윈도98이라면 다른 폴더에 있을 것입니다)
첫 번째 이유:
예전의 도스 시절에는 메모리가 1MB도 되지 않았기 때문에, 명령어 처리기인 COMMAND.COM 속에 모든 명령어를 다 넣을 수가 없었습니다. 아주 중요한 명령, 자주 쓰이는 명령이나 아주 간단한 명령만 COMMAND.COM 속에 내부 명령어로서 집어넣었습니다. 그밖의 것은 모두 별도의 파일로 만들어서 외부 명령어로 다루었습니다.
두 번째 이유:
COMMAND.COM 속에 모든 명령어를 다 집어넣으면 쉽게 바꿀 수가 없고 융통성이 없게 됩니다. 명령어 하나를 수정하려면 COMMAND.COM 전부를 다시 컴파일해 주어야만 합니다. 그렇지만 별도의 파일로 만들어 놓으면, 그 파일만 수정하면 쉽게 기능을 수정/향상시킬 수 있습니다.
DIR 은 내부 명령어이기에, dir.exe 나 dir.com 같은 파일이 하드에 없습니다.
XCOPY 는 외부 명령어이기에, 하드에 보면 xcopy.exe 라는 파일이 있습니다.
그리고 이건 which 라는 리눅스 명령어를 윈도우에서 실행시킨 것입니다
which 뒤에 어떤 명령어를 붙이고 실행하면, 그 명령어가 외부 명령어일 경우, 실행 파일의 경로를 알려줍니다. 만약 dir 같은 내부 명령어라면 파일을 찾을 수 없다고 나옵니다. 이것으로 내부 명령어와 외부 명령어를 쉽게 구분할 수 있습니다.
"모든 '도스 명령' 목록 보기, 윈도우2000 윈도우XP 에서" 여기에 좀더 자세한 정보가 있습니다.
도스나 윈도98의 셀은 command.com
윈도우 2000/XP 이상의 셀은 cmd.exe 입니다.
셀이란 '명령어 처리기'입니다. 가령 도스창 또는 '명령 프롬프트' 에서 dir 이라는 명령을 주었다면 '명령어 처리기'가 dir 이라는 명령을 처리하게 됩니다. 만약 명령어 처리기가 없다면 컴퓨터는 dir 이라는 명령이 무슨 명령인지 몰라서 처리하지 못합니다.
파일의 목록을 보여주는 dir 명령은 '내부 명령어(Internal Command)'이기에 command.com / cmd.exe 에 내장되어 있습니다. 그래서 command.com / cmd.exe 가 직접 결과를 출력합니다.
그러나 find 명령은 '외부 명령어'이기에, command.com / cmd.exe 에 내장되어 있지 않습니다. 그래서 command.com / cmd.exe 가 하드에 있는 find.exe 라는 별도의 파일을 자동으로 불러서 실행시킵니다.
사용자 입장에서는 외부 명령어와 내부 명령어는, 거의 구분이 가지 않습니다. 그리고 'C언어'를 사용해서, 사용자가 직접 외부 명령어를 만들어 추가할 수도 있습니다.
대표적인 외부 명령어들:
find.exe - 파일에서 텍스트 문자열을 찾습니다.
FORMAT.COM - 디스크를 포맷합니다.
DISKCOMP.COM - 두 플로피 디스크의 내용을 비교합니다.
DISKCOPY.COM - 플로피 디스크의 내용을 다른 플로피 디스크로 복사합니다.
doskey.exe - 명령 줄을 편집하고, Windows 2000 명령을 다시 호출하고, 매크로를 만듭니다.
mode.com - 시스템 장치를 구성합니다.
more.com - 출력을 한번에 한 화면씩 표시합니다.
sort.exe - 입력을 정렬합니다.
tree.com - 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 화면에 표시합니다.
xcopy.exe - 파일과 디렉터리 트리를 복사합니다.
외부 명령어들은 윈도가 설치된 폴더 밑의 system32 폴더 속에 들어 있습니다. (윈도98이라면 다른 폴더에 있을 것입니다)
외부 명령어들이 있는 이유는?
첫 번째 이유:
예전의 도스 시절에는 메모리가 1MB도 되지 않았기 때문에, 명령어 처리기인 COMMAND.COM 속에 모든 명령어를 다 넣을 수가 없었습니다. 아주 중요한 명령, 자주 쓰이는 명령이나 아주 간단한 명령만 COMMAND.COM 속에 내부 명령어로서 집어넣었습니다. 그밖의 것은 모두 별도의 파일로 만들어서 외부 명령어로 다루었습니다.
두 번째 이유:
COMMAND.COM 속에 모든 명령어를 다 집어넣으면 쉽게 바꿀 수가 없고 융통성이 없게 됩니다. 명령어 하나를 수정하려면 COMMAND.COM 전부를 다시 컴파일해 주어야만 합니다. 그렇지만 별도의 파일로 만들어 놓으면, 그 파일만 수정하면 쉽게 기능을 수정/향상시킬 수 있습니다.
외부 명령어와 내부 명령어를 구분하는 방법은?
DIR 은 내부 명령어이기에, dir.exe 나 dir.com 같은 파일이 하드에 없습니다.
XCOPY 는 외부 명령어이기에, 하드에 보면 xcopy.exe 라는 파일이 있습니다.
그리고 이건 which 라는 리눅스 명령어를 윈도우에서 실행시킨 것입니다
D:\Z>which find
C:/WINNT/system32/find.EXE
D:\Z>which xcopy
C:/WINNT/system32/xcopy.EXE
D:\Z>which more
C:/WINNT/system32/more.COM
D:\Z>which dir
which: no dir in (.;C:/WINNT/system32;C:/WINNT;C:/WINNT/System32/Wbem;D:/WINDOWS
_/Path;D:/Perl/bin;C:/Program Files/Common Files/Autodesk Shared/;D:/Program Fil
es/Autodesk/backburner/)
D:\Z>
C:/WINNT/system32/find.EXE
D:\Z>which xcopy
C:/WINNT/system32/xcopy.EXE
D:\Z>which more
C:/WINNT/system32/more.COM
D:\Z>which dir
which: no dir in (.;C:/WINNT/system32;C:/WINNT;C:/WINNT/System32/Wbem;D:/WINDOWS
_/Path;D:/Perl/bin;C:/Program Files/Common Files/Autodesk Shared/;D:/Program Fil
es/Autodesk/backburner/)
D:\Z>
which 뒤에 어떤 명령어를 붙이고 실행하면, 그 명령어가 외부 명령어일 경우, 실행 파일의 경로를 알려줍니다. 만약 dir 같은 내부 명령어라면 파일을 찾을 수 없다고 나옵니다. 이것으로 내부 명령어와 외부 명령어를 쉽게 구분할 수 있습니다.
"모든 '도스 명령' 목록 보기, 윈도우2000 윈도우XP 에서" 여기에 좀더 자세한 정보가 있습니다.
tag: windows
윈도우 | Windows 7 | Windows XP | Windows 2000
<< Home