윈도우 사용자라면? 꼭 알아야 할 명령 프롬프트 명령 14가지!
마이크로소프트(MS) 사가 천천히, 하지만 아주 확실히 도스 창이라고도 불리는 명령 프롬프트를 윈도우의 주요 화면 위치에서 밀어내고 있습니다. 아마 글자를 입력하는 방식이 이미 과거의 유물이 된지 오래이고, 현재 시점에서는 사용할 일이 거의 없기 때문이겠지요.
하지만 지금도 여전히 유용하게 활용할 수 있는 명령어가 남아 있는 데다가, 윈도우 8(Windows 8)은 여기에 새로운 기능을 추가하기까지 했습니다. 여기, 모든 윈도우 사용자가 알아야 할 명령어를 소개합니다.
혹시 명령 프롬프트를 어디에서 실행해야 할지 찾고 계시다면, 시작 버튼을 클릭한 뒤 검색 창에 '명령 프롬프트'를 입력하거나 혹은 윈도우 로고 + R 키를 눌러 '실행' 창을 연 뒤 여기에 cmd를 입력하고 확인을 눌러 실행하실 수 있습니다. 윈도우 8/8.1을 사용하고 계시다면 윈도우 로고 + X 키를 눌러 기능 메뉴를 띄운 후 여기서 명령 프롬프트를 선택하셔도 됩니다.
윈도우에 있는 대부분의 파일은 기본적으로 특정 프로그램으로 열도록 연결되어 있습니다. 그런데 가끔은, 이 파일 연결을 기억하는 게 혼란스러울 수 있습니다. 이럴 때라면, 프롬프트 창에 "assoc" 명령을 입력해 기억을 되살려 볼 수 있습니다. 실행되는 즉시, 파일 확장자와 함께 연결된 모든 프로그램이 목록 형태로 표시됩니다.
이 명령어를 조금 더 확장하면, 파일 확장자와 프로그램의 연결을 변경할 수도 있습니다. 예를 들면, "assoc .txt=" 명령은 등호 다음에 입력한 프로그램 이름으로 텍스트 파일 확장자의 연결 프로그램을 바꿔 줍니다. 이 ASSOC 명령은 확장자 이름에 더불어 프로그램 이름까지 줄임표 없이 완전히 표시해 보여주기 때문에, 명령어를 적절히 활용할 수 있도록 돕습니다. 아마 그래픽 화면에서 확장자 연결을 바꾸는 게 더 쉬울지도 모르지만, 이 프롬프트 명령어도 훌륭하게 동작하는 대안이 되어 줍니다.
메모리 형태의 SSD 하드디스크가 아닌, 모터 위에 금속 원판이 회전하는 기계식 하드디스크에서 파일을 지울 경우, 실제로는 파일이 전혀 제거되지 않습니다.
(※ SSD는 파일을 지우면 얼마 지나지 않아 바로 실제로 삭제하는 TRIM이라는 기능이 있어 기계식 디스크 보다 지운 파일을 복구하는 게 어려움, [+] 기계식과는 구조가 달라 파일을 완전히 지우려면 Cipher 명령이 아닌 제조사 제공 전용 프로그램을 사용해야 함)
그 대신, 파일을 지운 걸로 표시하고 자료에 대한 연결을 끊습니다. 파일 자료로 접근하는 연결만 끊어질 뿐, 실제 데이터는 남는 셈이지요. 새로운 데이터가 그 위에 덮어써질 때까지, 파일 데이터는 복구할 수 있는 상태로 남습니다. 그리고, 이렇게 예전 데이터를 새 데이터가 덮어쓰기까지는 어느 정도 시간이 필요합니다. 여기에 대한 좀 더 자세한 설명은 이 글에서 확인해 보실 수 있습니다.
하지만, 이 Cipher 명령은 하드디스크의 남은 공간에 임의의 데이터를 덮어써서 실제로 데이터가 삭제될 수 있도록 해줍니다. C 드라이브에서 지웠던 파일을 완전히 제거하려면, "cipher /w:c" 명령을 실행하면 됩니다. 실행 후 하드디스크 빈 공간의 파일 흔적을 말끔히 제거해 줍니다. 여기에 더해, 포맷과는 달리 지우지 않은 데이터를 덮어쓰지는 않기 때문에, 이 명령을 실행하더라도 나머지 필요한 파일에는 아무런 영향을 주지 않습니다.
드라이버는 컴퓨터에 설치된 가장 중요한 프로그램 중 하나입니다. 올바르지 않은 드라이버를 설치하거나 혹은 필요한 드라이버가 설치되어 있지 않다면, 정말 다양한 문제가 발생합니다. 때문에 컴퓨터에 어떤 드라이버가 설치되어 있는지 목록 형태로 볼 수 있다면 좋겠지요. "driverquery" 명령이 바로 이 일을 합니다. 명령을 실행하면 컴퓨터에 설치된 모든 드라이버를 목록으로 보여 줍니다. 여기서 v 옵션, 스위치를 주고 "driverquery –v" 명령을 실행하면, 드라이버가 설치된 폴더를 포함한 더 많은 정보를 얻을 수 있습니다.
이 명령은 두 개의 텍스트 파일 사이에서 내용에 차이점이 있는지 알아 내는데 사용할 수 있습니다. 한 파일의 두 버전 사이에서 작은 변화를 찾아 내고자 하는 작가나 프로그래머 분에게 특히 유용하겠지요. 바로 "fc" 명령을 입력한 다음 한 칸씩 띄우고 큰 따옴표로 감싼 두 파일의 경로와 이름을 넣고 실행하면 됩니다.
여기서 옵션을 붙여주면 명령을 좀 더 다양하게 활용할 수 있습니다. 파일 이름 전에 "/n"을 넣어주면 일치하지 않는 내용이 표시될 때 몇 번째 줄에 있는지 줄 번호가 함께 표시되고, "/c"를 넣으면 영문에서 대/소문자를 구분하지 않고 비교하며, "/b" 옵션은 파일을 이진 모드, 바이너리에서 비교하고, "/l"는 둘을 아스키(ASCII) 텍스트로 보고 비교합니다. (기본)
예를 들면, 두 텍스트 파일에서 내용 상 차이가 있는지 확인하려면 아래와 같이 명령어를 실행하면 됩니다.
fc /n "C:Working DocumentsWork1-1.txt" "C:Working DocumentsWork1-2.txt"
실행하고 나면 내용이 서로 다른 부분이 줄 번호와 함께 화면에 표시됩니다.
이 명령어를 사용하면 컴퓨터가 현재 사용하고 있는 IP 주소를 볼 수 있습니다. 하지만, 컴퓨터가 공유기와 같은 라우터를 통해 인터넷에 연결되어 있다면 (요즘은 거의 다 이런 형태죠), 라우터가 할당한 내부 네트워크의 "192.168…"로 시작하는 사설 IP 주소만 나오게 됩니다. 외부의 실제 인터넷에 연결할 때 사용하는 "222.24.32.14"와 같은 공인 IP 주소는 바로 알 수 없겠죠.
그래도, ipconfig 명령은 몇 가지 부가적인 기능 덕분에 여전히 유용하게 사용할 수 있습니다. 컴퓨터가 IP 주소를 바로 못 잡을 때 "ipconfig /release", "ipconfig /renew" 명령을 차례대로 실행하면, IP 주소를 갱신하고 새로 받아올 수 있습니다. 역시나 "ipconfig /flushdns" 명령을 사용하면 컴퓨터에 저장된 DNS 주소 정보를 지우고 새롭게 갱신할 수 있습니다. 이 명령 모두 윈도우에서 가끔씩 (웹 사이트나 게임 접속 등에서) 네트워크 문제가 발생할 큰 도움이 됩니다.
"netstat -an" 명령을 실행하면 현재 열려있는 포트 번호와 IP 주소를 목록으로 볼 수 있습니다. 목록에서는 포트의 현재 상태가 연결 준비 상태인지(Listening), 연결되어 있는지(Established), 혹은 연결이 끊겼는지(Closed)도 함께 알려 줍니다. 컴퓨터가 트로이 목마 바이러스에 감염된 것이 아닐까 의심되는 상황이라면, 이 명령을 활용해 공격에 사용되는 악감정 가득한 연결을 찾아낼 수 있습니다.
가끔은, 특정 웹 사이트나 서버가 잘 접속되는지 (네트워크 연결된 기기에 패킷이 잘 전달되는지) 확인해 봐야 할 때가 있습니다. 이럴 때 ping 명령을 편리하게 활용할 수 있습니다. "ping" 명령 다음에 한 칸 띄고 IP 주소나 웹 사이트 도메인 주소를 입력하고 실행하면, 지정된 주소로 전달 시험용 신호(패킷)를 몇 차례에 걸쳐서 보내게 됩니다. 이 신호가 잘 도착해서 결과가 돌아온다면, 상대 기기가 네트워크 통신을 할 수 있는 상태라는 걸 알 수 있죠. 그리고 혹시 요청 시간이 만료돼 연결이 실패한다면, 상대 기기와 컴퓨터 사이의 통신을 무언가가 가로막거나 방해하고 있다는 걸 확인할 수 있지요. 이 명령을 사용해 연결 문제가 잘못된 설정 때문에 발생하는지, 혹은 네트워크 하드웨어 고장 때문에 발생하는 건지 판단을 내리는데 도움을 얻을 수 있습니다.
ping의 좀 더 심화된 버전이라고 할 수 있는데, 컴퓨터, 그리고 연결을 시험하고 있는 기기 사이에 라우터, 중개기가 여러 개 있을 때 유용하게 사용할 수 있습니다. ping 명령과 마찬가지로 "pathping"을 입력한 다음, 뒤에 IP 주소를 넣고 엔터를 눌러 실행해 보세요. 전달이 얼마나 잘 됐는지 전달률과 함께 신호 데이터(패킷)가 거친 경로에 대한 정보도 함께 표시해 보여줄 겁니다.
"tracert" 명령은 앞서의 pathping과 비슷합니다. 역시나, "tracert"를 친 다음에 추적하고자 하는 IP 주소나 웹 사이트 주소를 입력하고 엔터를 누릅니다. 잠시 뒤, 여러분의 컴퓨터와 도달하고자 하는 대상 사이에서 거치는 각각의 관문과 경로에 대한 정보와 화면에 나타날 겁니다. 관문이 된 컴퓨터나 기기의 IP 주소, 거친 순서와 같은 것들 말이지요. 그런데, 앞서의 pathping 명령과는 달리 tracert는 각 지점에 도달하기까지 걸린 시간까지 함께 보여 줍니다 (밀리 초 단위). 그러니까, 각 서버나 기기 사이의 구간(홉, Hop)별로 걸린 시간 말이죠.
Powercfg는 컴퓨터의 에너지 사용 형태를 관리하고 추적할 수 있도록 해주는 매우 강력한 명령어입니다. "powercfg /hibernate on"과 "powercfg /hibernate off" 명령으로 각각 최대 절전 모드를 켜거나 끌 수 있고, "powercfg /a" 명령을 실행해 현재 컴퓨터에서 지원하는 전원 관리 방법을 한 눈에 볼 수도 있습니다.
다른 유용한 명령어로는 "powercfg /devicequery s1_supported"가 있습니다. 이 명령을 사용하면, 절전 모드에서 컴퓨터를 깨울 수 있는 기기에는 무엇이 있는지 목록 형태로 볼 수 있습니다. 이 목록에 있는 기기에서 깨우기 옵션을 켜면, 말 그대로 컴퓨터를 절전 모드에서 깨우는데 그 기기를 사용할 수 있게 됩니다 (마우스와 같은 USB 입력 장치 등). 이 깨우기 옵션을 켜두려면 장치 관리자를 엽니다. 목록에서 원하는 기기를 선택하고 마우스 오른쪽 단추를 눌러 속성을 클릭한 다음, 전원 관리 탭에서 "이 장치를 사용하여 컴퓨터의 대기 모드를 종료할 수 있음"이라고 적힌 부분을 체크하고 확인을 눌러 주시면 됩니다.
"powercfg /lastwake" 명령은 마지막으로 컴퓨터를 절전 모드에서 깨운 기기가 무엇인지 보여 줍니다. 컴퓨터가 이유 없이 절전 모드에서 켜지는 일이 자주 있다면, 이 명령을 문제 해결에 참고해 볼 수 있겠죠.
"powercfg /energy" 명령은 컴퓨터의 전원 소비에 대한 자세한 보고서를 만들 때 사용할 수 있습니다. 명령 실행 후 보고서 생성이 끝나면 어느 폴더에 결과가 나왔는지 경로가 나타납니다. 이 보고서는 시스템에서 전원 소비를 늘릴 만한 문제점에 대해 알 수 있도록 해줍니다. 특정 절전 모드로 진입하는 걸 방해하는 기기나, 전원 관리 설정을 따르도록 올바르게 설정되지 않은 장치처럼 말이지요.
윈도우 8은 "powercfg /batteryreport" 기능도 추가했습니다. 사용한 가능한 환경이라면, 배터리 사용에 대한 상세한 분석 결과를 보여 줍니다. 보통 결과는 윈도우의 사용자 폴더에 HTML 파일로 생성되는데, 보고서에는 기간별 배터리 사용 시간과 AC 전원 사용 시간, 배터리 용량 내역, 최대 충전 용량, 설계 용량, 설계 용량 기준으로 예측한 배터리 사용 시간, 실제 완전 충전 시 사용 시간 등이 담겨 있습니다.
윈도우 8/8.1에도 이전부터 존재했던 shutdown 명령이 있습니다. 윈도우 8로 들어서면서 예전보다 유용함이 한층 더 커진 명령어지요. 물론, 윈도우 8.1 업데이트 1 이후에는 시작 화면에 종료 버튼이 생겨 이 명령어를 사용할 일이 줄어들긴 했지만 말이지요.
그런데, 스위치 옵션을 결합한 shutdown 명령 중에는 지금도 여전히 의미 있는 명령어가 하나 있습니다. "shutdown /r /o" 명령을 실행하면, 안전 모드와 윈도우 복구 도구에 들어갈 수 있도록 해주는 고급 시작 옵션 화면으로 컴퓨터를 재시작 하게 됩니다. 문제를 해결할 목적으로 컴퓨터를 다시 시작하려 마음 먹으셨다면, 이 명령으로 한 번에 문제 해결 도구가 있는 고급 옵션 부팅 화면으로 갈 수 있겠지요.
시스템 파일 검사기(System File Checker)는 윈도우 시스템 파일의 정상 여부를 확인하고, 문제가 있으면 자동으로 수정하고 고치는 시스템 도구입니다. 특별히 이유가 될만한 게 보이지 않는데도 불구하고 윈도우 시작이나 종료, 프로그램 실행에 크고 작은 문제가 연속해서 이어진다면 시스템 파일 손상을 의심해 볼 수 있습니다. 이럴 때 Sfc 명령으로 시스템 파일 복원과 문제 해결을 시도해 볼 수 있습니다.
Sfc를 실행하려면, 우선 명령 프롬프트를 관리자 권한으로 엽니다. 그런 다음 "sfc /scannow"를 입력하고 실행해 보세요. 깨지거나 없는 파일이 발견되면, 복원용으로 따로 보관된 정상적인 시스템 파일로 자동 교체됩니다. 예전 넷북의 경우 작업을 마치는데 약 30분 정도의 시간이 걸립니다.
"tasklist" 명령어는 현재 컴퓨터에서 실행되고 있는 모든 작업과 프로그램을 목록 형태로 보여 줍니다. 작업 관리자가 있기 때문에 기본 기능을 사용할 일이 많지는 않겠지만, 작업 관리자의 보기 화면에서는 감춰져 있는 작업을 찾을 때 유용하게 사용할 수 있습니다.
스위치 옵션으로 역시나 작업 관리자로는 편리하게 딱- 골라서 딱- 결합해 볼 수 없는 정보, 혹은 아예 볼 수 없는 정보도 확인해 볼 수 있습니다. "tasklist /svc"는 각 프로그램과 관련된 서비스를 보여주고, "tasklist -v"는 각 작업에 대해 보다 더 자세한 정보를 얻는데 사용할 수 있고, "tasklist -m" 명령은 실행 중인 프로그램과 연결되어 있는 .dll 파일을 찾아내는데 사용할 수 있습니다. 이 명령은 모두 문제 해결을 위해 좀 더 심도 있게 프로그램 정보를 살펴볼 때 유용합니다.
※ 참고: tasklist | find "PID 값"으로 특정 프로세스 ID와 관련된 실행 파일의 이름을 알 수 있습니다. 의심스러운 프로그램이 알 수 없는 외부 IP 주소로 연결되어 있다면, netstat –ano | find "EST"로 TCP 연결을 생성한 프로세스 목록을 얻어낸 다음, 살펴 보려는 연결의 PID 값을 tasklist | find "192" 와 같이 넣고 실행하면 그 프로그램의 이름을 알아낼 수 있습니다.
앞서 살펴본 "tasklist" 명령을 사용하면, 실행 파일의 이름과 함께 프로세스 ID (PID, 최대 4자리인 실행 중 프로그램 구분용 숫자)가 보이실 겁니다. "taskkill /im notepad.exe"처럼 실행 파일의 이름을 뒤에 넣거나 혹은 "taskkill /pid 1732"와 같이 프로세스 ID(PID) 값을 뒤쪽에 입력하고 실행하면 프로그램을 종료할 수 있습니다.
가끔은 프로그램에서 닫기 버튼을 눌러도 '응답 없음' 상태로 멈추거나 종료되지 않는 경우가 있죠? 이 때는 /f 옵션을 붙여 "taskkill /f /im notepad.exe"와 같이 명령을 실행하면 아주 신속하게 응답하지 않는 프로그램을 '즉시' 종료할 수 있습니다. 목록에서 스크롤을 내리며 프로그램 이름을 찾은 다음, 다시 종료 메뉴나 버튼을 누르고 예나 확인 버튼을 누르는 과정을 거쳐야 프로그램을 강제 종료할 수 있는 작업 관리자와는 대조적인 부분이지요 (이 때, 저장되지 않은 자료는 사라질 수 있기 때문에 유의해야 합니다).
앞서의 tasklist 명령과 함께, 문제가 있는 프로그램을 찾아내고 종료하는데 유용하게 활용할 수 있습니다.
이 글에서 윈도우의 모든 명령 프롬프트 명령어를 다룬 것은 아닙니다. 이 밖에도 정말 다양한 명령이 있습니다. 윈도우의 그래픽 환경에서 거의 모든 일을 할 수 있고, 이런 명령어가 보통은 잘 사용되지 않지만 여전히 반복적인 작업을 줄이거나 혹은 가볍고 빠르게 필요한 내용을 살펴보는데 이 명령어를 유용하게 활용할 수 있습니다.
예를 들면, 지금 실행 중인 모든 프로그램을 목록으로 정리하고 싶다면 어떻게 해야 할까요? 작업 관리자를 사용한다면 일일이 눈으로 한 번 보고 프로그램 이름 입력하고, 눈으로 한 번 보고 이름 입력하고.. 직접 다 쳐서 수작업으로 정리해야 할 겁니다. 하지만 명령어를 활용한다면? "tasklist >> t_list.txt"처럼 몇 단어만 입력하면 1초도 되기 전에 모든 일이 끝납니다. 이미 실행 중인 프로그램 이름과 정보가 t_list.txt 파일에 정리되어 있는 걸 확인할 수 있지요.
이렇게 알아두면 상황에 따라 지금도 여러 활용이 가능합니다. 관심이 가는 명령어가 있다면 이번 기회에 한 번 확인해 보세요. 그런데, 여러분이 자주 사용하는 명령어는 어떤 건가요?