간단하게 배워보는 DOS 명령어

1.디렉토리 관련 명령어인 md, cd, rd

디렉토리 관련 명령어는 md, cd, rd가 있습니다.

cd, dir 명령 외에도 알아두어야 할 명령어를 몇 개 더 알아보겠습니다. cd와 dir 명령어만 알면 이미 컴퓨터에 설치된 프로그램을 실행시키는데는 부족함이 없습니다. 그러나 다른 곳에 있는 프로그램을 복사해서 자신의 컴퓨터에 깔고 이를 실행하기 위해서는 몇 가지 명령어를 더 알아야 합니다.

우선 디렉토리에 관한 명령어를 알아야 합니다. 디렉토리에 관한 명령어는 3개가 있습니다. 디렉토리를 만드는 명령어와 디렉토리 사이를 이동하는 명령어, 디렉토리를 지우는 명령어입니다. 디렉토리 사이를 이동하는 명령어는 cd 명령어입니다. 이는 이미 앞서 배웠습니다. 따라서 디렉토리를 만들고 지우는 방법만 알면 됩니다.

md는 디렉토리를 만드는 명령입니다.

디렉토리를 만드는 명령어는 MD입니다. Make Directory의 줄임말이죠. 현재 루트 디렉토리에 있는 상태고 루트 디렉토리 밑에 test라는 디렉토리를 만들고자 한다면 다음과 같이 명령을 내리면 됩니다.

md test[Enter]

cd 명령어처럼 명령어를 앞에 입력하고 만들고자 하는 디렉토리 이름을 적어주면 됩니다. 자신이 만든 test 디렉토리로 이동하려면 `cd test[Enter]`이라고 하면 되겠죠.

`md test[Enter]`라는 명령은 루트 디렉토리를 뜻하는 기호가 맨 앞에 안붙었으니 상대경로 지정방법을 이용했습니다. 절대경로를 이용한다면 다음과 같이 명령을 내려야겠죠.

md c: est[Enter]

만약 현재 자신이 루트 디렉토리에 있는 상태에서 game이라는 디렉토리 밑에 test라는 디렉토리를 만들고자 한다면 다음과 같이 명령을 내립니다.

md c:game est[Enter]

rd는 디렉토리를 지우는 명령입니다.

지 울 때는 RD 명령어를 이용합니다. RD는 Remove Directory의 줄임말입니다. rd 명령어는 md 명령어와 사용법이 같습니다. 현재 사용자가 루트 디렉토리에 있고 루트 밑에 있는 test 디렉토리를 지우고자 한다면 다음과 같이 명령을 내립니다.

rd test[Enter]

또는 절대경로 지정방법을 이용해 다음과 같이 내릴 수도 있습니다.

rd c: est[Enter]

디렉토리를 지울 때는 몇 가지 조건이 필요합니다.

단 디렉토리를 만들 때와는 달리 지울 때는 몇 가지 조건이 있습니다.

1.현재 디렉토리는 지울 수 없습니다.

2.서브 디렉토리가 있거나 파일이 있을 경우 지울 수 없습니다.

3.루트 디렉토리는 지워지지 않습니다.

1 번 조건을 풀어서 설명하면 현재 디렉토리를 지울 수 없으므로 반드시 다른 경로, 그러니까 다른 디렉토리에서 rd 명령어를 사용해야 한다는 뜻입니다. 만약 c: est라는 방으로 이동한 상태라면 현재 디렉토리는 c: est가 됩니다. 이 상태에서 `rd c: est`라고 입력할 경우 test라는 디렉토리는 지워지지 않습니다. 따라서 c: est 디렉토리가 아닌 다른 디렉토리로 이동한 다음에 `rd c: est` 명령어를 내려야 합니다.

건물을 철거할 때 철거할 건물 안에서 건물을 때려부술 수는 없죠. 그랬다가는 자신도 건물에 깔려 사망할 테니까요. 그래서 건물을 철거하거나 폭파할 때는 부수려는 건물 밖에서 철거해야 합니다. 자신이 있는 건물을 스스로 무너뜨리는 것이 비상식적인 행위인 것처럼 디렉토리를 지울 때도 다른 디렉토리로 이동한 다음에 지워야 합니다.

2번 조건은 혹시라도 실수로 디렉토리를 지울 때를 대비해 만들어둔 조건입니다. 지우고자 하는 디렉토리에 서브 디렉토리가 포함되어 있거나 파일이 있을 경우에는 디렉토리를 지울 수 없습니다. 서브 디렉토리에 중요한 파일이 들어있을지도 모르는데 이를 깜박하고 디렉토리를 지울 수 있습니다. 이런 불상사를 막기 위하여 서브 디렉토리를 확인하고 지우도록 한 것입니다. 따라서 이런 경우에는 먼저 파일을 지우거나 서브 디렉토리를 지워야 합니다.

따라서 c:gameaduk라는 디렉토리를 지우기 위해서는 c:gameadukkoreahandtalk라는 디렉토리에 포함된 파일을 먼저 지운 뒤에 상위 디렉토리인 c:gameadukkorea로 이동하여 `rd handtalk` 명령어로 handtalk 디렉토리를 지웁니다. 다음에는 korea 디렉토리에 있는 파일을 다 지운 다음에 역시 상위 디렉토리인 baduk로 이동하여 `rd korea` 명령어로 korea 디렉토리를 지웁니다. 그리고 baduk 디렉토리에 있는 파일을 모두 지우고 상위 디렉토리인 game로 이동한 다음에야 baduk 디렉토리를 지울 수 있습니다.

2.del로 파일을 지우고, ren으로 이름 바꾸기

del은 파일을 지우는 명령어입니다.

디렉토리를 지우는 명령을 배웠으니 이번에는 파일을 지우는 명령어를 알아보겠습니다. 파일을 지우는 명령어는 del 입니다. 파일을 다루는 명령어이므로 매개변수 사용법은 dir과 비슷합니다.

원하는 하나의 파일만 지우고 싶다면 del 명령 다음에 지울 파일 이름을 적어주면 됩니다.

del tetris.exe[Enter]

이 렇게 하면 현재 디렉토리에 있는 tetris.exe 파일이 지워집니다. 와일드카드를 이용해 한꺼번에 여러 개의 파일을 지울 수도 있습니다. 예를 들어서 현재 디렉토리에 있는 확장자가 hwp인 파일만 지우고 싶다면 다음과 같이 명령을 줍니다.

del *.hwp[Enter]

그렇다면 모든 파일을 지우고 싶다면 다음과 같이 와일드카드를 이용하면 되겠죠.

del *.*[Enter]

이 렇게 하면 현재 디렉토리에 있는 모든 파일이 다 지워집니다. 그런데 `del *.*[Enter]` 명령을 이용할 때는 정말로 모두 지울 것이냐 물어보는 안내문이 나탑니다. 혹시 실수로 지우지 말아야할 파일까지 지울 것을 염려해서입니다. 이때 y를 선택하면 모두 지워지고, n를 선택하면 지우기 작업을 취소합니다.

`del *.*` 명령어로 파일을 모두 지운 뒤에 dir로 보면 파일이 하나도 없습니다.

만약 다른 디렉토리에 있는 파일을 지우고 싶다면 경로명을 모두 적어주면 됩니다.

del c:gamepuzzle etris*.*[Enter]

이렇게 하면 현재 디렉토리에 상관 없이 tetris 디렉토리에 있는 모든 파일이 지워집니다.

ren(rename)은 파일 이름을 바꾸는 명령어입니다.

파 일 이름을 바꿀 때는 ren 명령을 사용합니다. tetris.exe 파일의 이름이 길어서 매번 테트리스 게임을 실행하기 위하여 tetris 라고 치기가 귀찮다면 파일 이름을 바꾸어 길이를 줄일 수 있습니다. ren 명령은 다음과 같은 형식으로 사용합니다. `ren 원래파일 이름 바꾸려는파일 이름`. 예를 들면 다음과 같이 사용합니다.

ren tetris.exe t.exe[Enter]

이렇게 하면 tetris.exe 파일의 이름이 t.exe로 바뀝니다. 따라서 다음부터는 t[Enter]라고만 입력하면 테트리스 게임이 실행됩니다.

3.텍스트 파일 내용 보는 type 명령어

type 명령어는 텍스트 파일의 내용을 보여줍니다.

type 명령어는 보고자 하는 파일이 텍스트 파일일 경우에 파일의 내용을 보여줍니다. 텍스트 파일이 무엇인지는 뒤에 다시 설명해드리겠습니다. 일단 사용법만 알려드리겠습니다.

type 파일 이름[Enter]

예를 들어서 readme.txt라는 텍스트 파일이 있는데 이 파일의 내용을 보고 싶다면 다음과 같이 입력합니다.

type readme.txt[Enter]

그러면 readme.txt 파일의 내용을 화면으로 보여줍니다.

4.파일 복사하는 copy 명령어

copy 명령어는 파일을 복사할 때 사용합니다.

다른 컴퓨터에 있는 파일을 복사해오기 위해서는 파일을 복사하는 명령어도 알아야 합니다. 파일 복사 명령어는 copy 입니다. 형식은 `copy 원본파일의경로 복사할파일의경로`입니다.

예를 들어서 현재 사용자가 c:gamepuzzle etris라는 디렉토리에 와있는 상태인데 이 안에 있는 모든 파일을 플로피디스크인 A: 드라이브로 복사하고 싶다면 다음과 같이 명령을 내립니다.

copy c:gamepuzzle etris*.* a:[Enter]

도스 명령어에서 생략 가능한 내용은 생략할 수 있습니다.

그 런데 명령줄이 좀 길죠. 생략 가능한 것을 생략해 줄여보겠습니다. 우선 현재 사용자가 c:gamepuzzle etris라는 디렉토리에 와있는 상태이므로 이 부분에 관한 내용을 줄일 수 있습니다. 즉 다음과 같이 명령을 내려도 결과는 같습니다.

copy *.* a:[Enter]

이렇게 하면 컴퓨터는 알아서 현재 드라이브인 C: 드라이브의 현재 디렉토리인 gamepuzzle etris 디렉토리에 있는 모든 파일(*.*)을 A: 드라이브로 복사해줍니다.

만약 tetris.exe라는 파일을 t2.exe라는 파일로 하나 더 만들어 A: 드라이브에 복사하고 싶다면 다음과 같이 명령을 내립니다.

copy tetris.exe a: 2.exe[Enter]

tetris.exe 파일을 현재의 디렉토리에 t3.exe로 하나 더 복사해두고 싶다면 다음과 같이 명령을 내립니다.

copy tetris.exe t3.exe[Enter]

5.주변장치를 파일로 사용하는 방법

copy 명령을 이용해 type 명령을 대신할 수 있습니다.

copy 명령어는 이 외에도 상당히 복잡한 사용이 가능합니다. 여러 개의 파일을 하나로 합치는 것도 가능하고 텍스트 파일의 내용을 볼 수도 있으며 프린터로 출력할 수도 있습니다.

너 무 깊이 알 필요는 없지만 파일의 개념을 좀더 잘 이해하기 위하여 몇 가지 예를 더 들겠습니다. 만약 test.txt라는 텍스트 파일이 있다고 합시다. 도스에서는 이 파일의 내용을 보기 위하여 type라는 명령을 이용합니다. 예를 들면 다음과 같이 사용합니다.

type test.txt[Enter]

이렇게 하면 test.txt 파일의 내용을 모니터로 보여줍니다. 단 텍스트 파일만 가능합니다. 텍스트 파일이란 사람이 이해할 수 있는 문자로만 만들어진 파일을 뜻합니다. 그리고 텍스트 파일의 반대어로 기계어 파일이 있습니다. 기계어 파일은 기계가 이해할 수 있는 문자로 된 파일입니다. 따라서 기계어 파일을 type 명령어로 내용을 보면 아주 이상한 문자들만 잔뜩 화면에 타나나며 이상한 동작을 하게 됩니다.

`type test.txt` 명령의 결과. test.txt 파일 안의 내용을 보여줍니다.

하여간 텍스트 파일의 내용을 보기 위해서 보통 type 명령을 많이 이용하는데, copy 명령을 이용해도 같은 결과를 얻을 수 있습니다. 다음과 같이 명령을 내리면 됩니다.

copy test.txt con[Enter]

이 명령어는 test.txt 파일을 con이라는 파일로 복사하라는 뜻입니다. 그런데 con이라는 파일 이름은 예약된 이름입니다. con은 console의 줄임말로 console 장치를 뜻하는 파일 이름입니다. console는 모니터와 키보드입니다. 사람들이 보기에는 모니터와 키보드가 전혀 다른 두 개의 제품이고 하는 일도 다르지만 컴퓨터에서는 한 몸으로 봅니다.

copy 명령어 바로 뒤의 파일이 입력 쪽, 마지막 파일이 출력 쪽입니다.

여기서 한 가지 꼭 알아두실 점은 모든 파일은 입출력이 가능하다는 점입니다. 즉 우리가 `copy tetris.exe t2.exe`라고 내린 명령은 이런 뜻입니다.

`tetris.exe라는 파일에서 내용을 입력받아서 t2.exe라는 파일로 출력하라.`

그래서 tetris.exe 파일의 내용을 읽어서 t2.exe 파일로 만든 것입니다.

먼 저 사용한 `copy test.txt con`이라는 명령어는 test.txt 파일의 내용을 입력받아서 con이라는 파일로 출력하라는 뜻입니다. 그런데 con은 모니터와 키보드라고 했습니다. 키보드는 입력만 가능한 장치이고, 모니터는 출력만 가능한 장치입니다. 때문에 이 둘을 하나로 묶어서 둘을 하나의 몸으로 만든 것입니다. 따라서 `copy test.txt con`이라는 명령에 따라서 test.txt 파일을 입력받아 con으로 출력해야 하므로 출력장치인 모니터로 test.txt 파일을 보낸 것입니다. 모니터는 입력된 신호를 화면으로 보여주는 일을 하는 장치(=파일)이므로 결국 test.txt 파일의 내용을 화면으로 보여주게 됩니다.

그렇지만 `copy test.txt con` 명령은 copy 명령을 이용한 것이기 때문에 명령을 수행한 뒤에 `1 file(s) copied`라는 문장이 화면에 표시됩니다. 이 점이 `type test.txt`와 다른 점입니다.

`copy test.txt con` 명령의 결과. `1 file(s) copied`라는 문장이 화면에 표시됩니다.

`copy con test.txt`는 키보드로 입력받아 test.txt로 저장하라는 뜻입니다.

그렇다면 반대의 경우도 생각해볼 수 있습니다. 즉 con으로부터 입력받아 test.txt 파일로 출력해주는 일이 가능합니다. 다음과 같이 명령을 내리면 됩니다.

copy con test.txt[Enter]

이 명령을 내리면 con으로부터 입력받아 test.txt라는 파일로 만들어줍니다. con은 디스크에 저장된 파일이 아닙니다. 따라서 입력이 가능한 키보드로 입력받아야 합니다. 결국 이 명령은 키보드로 입력받은 내용을 test.txt로 저장하라는 뜻입니다. 따라서 이 명령을 이용하면 간단한 워드프로세서 프로그램 대용으로 사용 가능합니다. `copy con test.txt` 명령을 이용하면 컴퓨터의 키보드를 타자기처럼 사용하거나 워드프로세서 프로그램을 대신할 수 있습니다.

copy con 명령어 이용을 끝내려면 마지막 줄 첫번째 칸에서 `Ctrl+Z`를 동시에 누릅니다.

원하는 문장을 다 입력했으면 맨 마지막 줄 첫 번째 칸에서 [Ctrl]+ 를 동시에 누르기 바랍니다. 그러면 지금까지 입력한 내용이 test.txt 파일로 저장됩니다.

`copy con test.txt` 명령을 이용해 파일을 만들었습니다.

이상의 예에서 알 수 있는 것처럼 모니터, 키보드, 프린터, 플로피디스크드라이브 등의 하드웨어도 컴퓨터는 하나의 파일로 간주하고 처리합니다.

일 반적으로 type 명령어는 파일을 모니터로 보여주는 명령어라고 말합니다. 그러나 좀더 정확하게 표현할 때는 `입력받은 파일을 표준입출력장치로 출력해주는 명령어`라고 합니다. 이때 표준입출력장치라고 하는 것이 키보드와 모니터입니다. 때문에 모니터로 파일의 내용을 보여주는 것입니다. 만약 표준입출력장치가 모니터가 아닌 다른 장치라면 type 명령을 이용했을 때 모니터로 내용을 보여주는 것이 아니라 표준입출력장치로 사용하는 장비 쪽으로 내용을 전송하게 됩니다. 출력 방향에 관해서는 나중에 리다이렉션이라는 낱말을 설명할 때 좀더 자세하게 다루겠습니다. 여기선 하드웨어도 파일처럼 다룰 수 있다는 것까지만 이해하시면 충분합니다.

Leave a Reply