티스토리 뷰



요즘 컴퓨터를 배우는 학생들을 보면 컴퓨터를 처음 만지는 순간부터 마우스를 붙잡고 화면 창을 통해서 클릭, 더블클릭, 끌어다놓기로 왠만한 작업을 하다보니 프로그래밍을 배우고는 있지만 텍스트만 표시되는 콘솔 창에서의 작업은 뭔가 친하지 않은 느낌을 받는 모양입니다. PC, 스마트폰과 태블릿까지 온통 GUI(Graphic User Interface) 기반이다 보니 요즘 컴퓨터를 배우는 사람에게 텍스트 기반으로 콘솔 환경이 익숙치 않음은 당연한 현실이 아닌가 싶기도 합니다.

그렇지만, 프로그래밍을 본격적으로 배우고 다양한 프로그래밍 언어를 만나다 보면 콘솔 환경에서 작업하는 것에 대한 기본적인 이해는 필수입니다. 대부분 컴퓨터 시스템의 핵심 기능은 GUI 기반이 아니라 텍스트 기반이기 때문입니다. 물론 콘솔 환경에 대한 이해없이 GUI 기반으로 프로그램을 개발할 수도 있지만 시스템 내부의 기능이나 현상 파악등에 있어서는 한계에 도달할 수 밖에 없습니다. 그런 이유로 프로그래밍을 배우려 한다면 콘솔 환경에 익숙해질 것을 권합니다. 본 포스팅에서는 윈도우 콘솔이라 했으나 사람마다 다양한 용어로 콘솔을 지칭하는데 예를 들면 도스창, 명령창, 도스 커맨드라인(Command line)등등이 있습니다.

윈도우의 콘솔 환경에 익숙해 지시면 리눅스등의 다른 운영체제에서의 작업도 그리 어렵지 않게 적응할 수 있으므로 오늘은 윈도우 콘솔 명령중에 자주 사용하는 것들을 다루어 볼까 합니다. 콘솔 명령을 수행하기 위해서는 콘솔창을 띄워야 하는데 시작 메뉴에서 "cmd"를 입력해서 실행할 수 있습니다. 윈도우키+R로 실행창을 열고 "cmd"를 입력해도 됩니다. 콘솔 명령에 대하여 알고 싶으면 "help"를 입력하고 엔터를 누르면 아래와 같은 명령 안내를 확인할 수 있습니다.


개별 명령에 대한 세부 옵션과 사용법을 알고 싶으면 아래의 그림과 같이 "help 명령어"를 입력하면 됩니다.



콘솔창의 내용을 복사해서 다른 곳에 붙여넣고 싶을때는 마우스 우측 버튼의 팝업 메뉴를 띄우고 "모두 선택" 메뉴를 클릭한 다음 마우스 우측 버튼으로 클릭해서 복사하거나 "팝업 메뉴>표시" 메뉴를 클릭한 다음 끌어다 놓기(Drag & Drop)으로 복사 대상을 선택하고 마우스 우측 버튼으로 클릭해서 복사할 수 있습니다. 복사한 내용은 클립보드에 들어가므로 다른 프로그램에서 붙여넣기 하시면 됩니다. 반대로 메모장이나 다른 에디터에서 명령등을 복사한 다음 콘솔창 팝업 메뉴>붙여넣기로 명령을 붙여넣기해서 사용할 수도 있습니다.


아래는 윈도우 콘솔창에서 "HELP"로 나온 명령 목록입니다.

ASSOC    파일 확장명 연결을 보여주거나 수정합니다.
ATTRIB   파일 속성을 표시하거나 바꿉니다.
BREAK    확장된 CTRL+C 검사를 설정하거나 지웁니다.
BCDEDIT  부팅 로딩을 제어하기 위해 부팅 데이터베이스에서 속성을 설정합니다.
CACLS    파일의 액세스 컨트롤 목록(ACL)을 표시하거나 수정합니다.
CALL     한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다.
CD       현재 디렉터리 이름을 보여주거나 바꿉니다.
CHCP     활성화된 코드 페이지의 번호를 표시하거나 설정합니다.
CHDIR    현재 디렉터리 이름을 보여주거나 바꿉니다.
CHKDSK   디스크를 검사하고 상태 보고서를 표시합니다.
CHKNTFS  부팅하는 동안 디스크 확인을 화면에 표시하거나 변경합니다.
CLS      화면을 지웁니다.
CMD      Windows 명령 인터프리터의 새 인스턴스를 시작합니다.
COLOR    콘솔의 기본색과 배경색을 설정합니다.
COMP     두 개 또는 여러 개의 파일을 비교합니다.
COMPACT  NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경합니다.
CONVERT  FAT 볼륨을 NTFS로 변환합니다. 현재 드라이브는 변환할 수 없습니다.
COPY     하나 이상의 파일을 다른 위치로 복사합니다.
DATE     날짜를 보여주거나 설정합니다.
DEL      하나 이상의 파일을 지웁니다.
DIR      디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다.
DISKCOMP 두 플로피 디스크의 내용을 비교합니다.
DISKCOPY 플로피 디스크의 내용을 다른 플로피 디스크로 복사합니다.
DISKPART 디스크 파티션 속성을 표시하거나 구성합니다.
DOSKEY   명령줄을 편집하고, Windows 명령을 다시 호출하고, 매크로를 만듭니다.
DRIVERQUERY  현재 장치 드라이버 상태와 속성을 표시합니다.
ECHO     메시지를 표시하거나 ECHO를 사용 또는 사용하지 않습니다.
ENDLOCAL 배치 파일에서 환경 변경의 지역화를 끝냅니다.
ERASE    하나 이상의 파일을 지웁니다.
EXIT     CMD.EXE 프로그램(명령 인터프리터)을 마칩니다.
FC       두 파일 또는 파일의 집합을 비교하여 다른 점을 표시합니다.
FIND     파일에서 텍스트 문자열을 찾습니다.
FINDSTR  파일에서 문자열을 찾습니다.
FOR      파일 집합에서 각 파일에 대해 지정된 명령을 실행합니다.
FORMAT   Windows에서 사용할 디스크를 포맷합니다.
FSUTIL   파일 시스템 속성을 표시하거나 구성합니다.
FTYPE    파일 확장 연결에 사용되는 파일 형식을 표시하거나 수정합니다.
GOTO     Windows 명령 인터프리터가 일괄 프로그램에서 이름표가 붙여진 줄로 이동합니다.
GPRESULT 컴퓨터 또는 사용자에 대한 그룹 정책 정보를 표시합니다.
GRAFTABL Windows가 그래픽 모드에서 확장 문자 세트를 표시할 수 있게 합니다.
HELP     Windows 명령어에 관한 도움말을 제공합니다.
ICACLS   파일과 디렉터리에 대한 ACL을 표시, 수정, 백업 또는 복원합니다.
IF       일괄 프로그램에서 조건 처리를 수행합니다.
LABEL    디스크의 볼륨 이름을 만들거나, 바꾸거나, 지웁니다.
MD       디렉터리를 만듭니다.
MKDIR    디렉터리를 만듭니다.
MKLINK         기호화된 링크와 하드 링크를 만듭니다.
MODE     시스템 장치를 구성합니다.
MORE     출력을 한번에 한 화면씩 표시합니다.
MOVE     하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 옮깁니다.
OPENFILES  파일 공유에서 원격 사용자에 의해 열린 파일을 표시합니다.
PATH     실행 파일의 찾기 경로를 보여주거나 설정합니다.
PAUSE    배치 파일의 처리를 보류하고 메시지를 보여줍니다.
POPD     PUSHD 명령으로 저장된 디렉터리로 바꿉니다.
PRINT    텍스트 파일을 인쇄합니다.
PROMPT   Windows 명령 프롬프트를 바꿉니다.
PUSHD    현재 디렉터리를 저장한 후 디렉터리를 바꿉니다.
RD       디렉터리를 지웁니다.
RECOVER  불량이거나 결함이 있는 디스크에서 읽을 수 있는 정보를 복구합니다.
REM      배치 파일 또는 CONFIG.SYS에서 주석을 기록합니다.
REN      파일 이름을 바꿉니다.
RENAME   파일 이름을 바꿉니다.
REPLACE  파일을 대체합니다.
RMDIR    디렉터리를 지웁니다.
ROBOCOPY 파일과 디렉터리 트리를 복사할 수 있는 고급 유틸리티입니다.
SET      Windows 환경 변수를 보여주거나, 설정하거나, 지웁니다.
SETLOCAL 배치 파일에서 환경 변경의 지역화를 시작합니다.
SC       서비스를 표시하거나 구성합니다(백그라운드 작업).
SCHTASKS 컴퓨터에서 실행할 명령과 프로그램을 예약합니다.
SHIFT    배치 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.
SHUTDOWN 컴퓨터의 로컬 또는 원격 종료를 허용합니다.
SORT     입력을 정렬합니다.
START    지정된 프로그램이나 명령을 별도의 창에서 시작합니다.
SUBST    경로를 드라이브 문자로 지정합니다.
SYSTEMINFO  특정 컴퓨터의 속성과 구성을 표시합니다.
TASKLIST 서비스를 포함한 실행 중인 모든 작업을 표시합니다.
TASKKILL 실행 중인 프로세스나 응용 프로그램을 중지합니다.
TIME     시스템 시간을 보여주거나 설정합니다.
TITLE    CMD.EXE 세션에 대한 창의 창 제목을 설정합니다.
TREE     드라이브 또는 경로의 디렉터리 구조를 그래픽으로 화면에 표시합니다.
TYPE     텍스트 파일의 내용을 보여줍니다.
VER      Windows 버전을 보여줍니다.
VERIFY   파일이 디스크에 올바로 쓰였는지 검증할지 여부를 지정합니다.
VOL      디스크 볼륨 이름과 일련 번호를 보여줍니다.
XCOPY    파일과 디렉터리 트리를 복사합니다.
WMIC     대화형 명령 셸 내의 WMI 정보를 표시합니다.


위의 콘솔 명령들은 윈도우 3.1이전의 DOS 운영체제에서는 대부분의 명령을 필수 도구 처럼 사용해야 했으나 지금은 많은 경우 시스템에서 자동으로 처리하거나 탐색기 등의 GUI 도구로 간편하게 해결할 수 있습니다. 다만 *.BAT 확장자로 만들수 있는 배치(Batch) 파일에서는 이러한 명령들을 조합하여 작업을 자동화 할수도 있습니다. 몇가지 자주 사용하는 것들만을 간추리면 다음과 같습니다.


■ 디렉토리 다루기

디렉토리(Directory) 또는 폴더(Folder)라고도 하며 내부에 속한 서브(Sub) 디렉토리 또는 파일 정보를 가지고 있습니다.

  • 현재 디렉토리는 . 이전 디렉토리는 ..으로 나타냅니다.

  • 절대 경로는 "드라이브명:\경로\경로" 처럼 드라이브 맨 처음부터 목적지까지를 표시하는 방식이고

  • 상대 경로는 "..\경로\경로" 처럼 현재 위치를 기준으로 목적지까지를 표시하는 방식입니다.

  • PROMPT 명령으로 프롬프트를 변경할 수 있지만 기본 프롬프트는 아래의 그림처럼 프롬프트에서 현재의 경로를 확인할 수 있습니다.

  • 디렉토리 생성 : MD 경로 또는 MKDIR 경로

  • 디렉토리 이동 : CD 경로 또는 CHDIR 경로, 같은 드라이브에서만 이동할 수 있습니다. 다른 드라이브의 경로로 이동하려면 "C:" "D:" 처럼 드라이브명:을 입력하고 엔터를 눌러서 드라이브를 이동하고 그 다음에 디렉토리를 이동합니다.

  • 디렉토리 삭제 : RD 경로 또는 RMDIR 경로, 디렉토리 내부에 파일이 있으면 디렉토리를 삭제할 수 없습니다. 

  • 디렉토리 내용 보기 : DIR 경로, 경로를 입력하지 않으면 현재 경로를 보여줍니다. 자주 사용하는 옵션은 dir /w는 파일명만 간단히 옆으로 나열합니다. dir /p는 페이지 단위로 출력합니다. /s 옵션을 추가로 지정하면 서브디렉토리까지 모두 검색합니다.

  • 디렉토리 구조 보기 : TREE 경로, 경로를 생략하면 현재 경로 부터 보여줍니다.


■ 파일 다루기
리눅스나 유닉스 운영체제의 경우에는 파일 속성에 실행가능한지 읽기만 허용할지 다른 사람도 접근 가능한지 등을 모두 저장하지만 윈도우의 경우에는 파일 확장자를 통해서 실행 가능 여부를 구분합니다. 물론 파일 속성도 존재합니다.
  • 파일 속성 확인 : ATTRIB 파일명
  • 윈도우에서 실행 가능한 파일은 확장자가 *.com, *.exe, *.bat인 파일입니다.
  • 파일 복사 : COPY 원본 대상, 원본을 대상으로 복사합니다.
  • 파일 삭제 : DEL 파일명, ERASE 파일명
  • 파일 이름 변경 : REN 원본경로 대상이름, RENAME 명령도 사용할 수 있습니다. 경로를 바꿀 수는 없고 이름만 바꿀 수 있습니다.
  • 파일 이동 : MOVE 원본 대상

■ 기타 콘솔 팁
  • 와일드 카드 : "모든 파일", "이름이 a 로 시작하는 파일", "확장자가 m으로 시작하는 파일"등 임의의 N개의 파일을 지정할 때 파일 및 경로 지정에 사용할 수 있는 것으로 *임의의 N개의 문자를 의미하고 ?임의의 1개의 문자를 의미합니다. "모든 파일"은 *, "이름이 a 로 시작하는 파일"은 a*, "확장자가 m으로 시작하는 파일"은 *.m*으로 지정해서 DIR이나 DEL 명령등에 활용할 수 있습니다.
  • 현재 시스템 시간 및 일자 조회 및 변경 : DATE, TIME 명령을 사용하며 조회만 하려면 명령 입력후 새로운 시간이나 일자 입력시 그냥 엔터를 입력하거나 명령 입력시 /T 옵션을 지정하면 됩니다.
  • 실행 경로 확인하기 : PATH, 콘솔창에서 경로 지정없이 실행 파일을 입력하면 윈도우 시스템은 미리 지정된 실행 경로에 해당 파일이 있는지 찾는데 그 실행 경로 값을 보여줍니다. 자주 사용하는 프로그램의 경로를 등록해 놓으면 경로 지정없이 파일명만으로 실핼시킬 수 있습니다. 실행 경로를 변경하려면 제어판>시스템>고급>환경변수에서 path에 ";"덧붙이고 새 경로를 추가하면 됩니다.
  • 이전 명령 활용하기 : 상하 화살표를 누르면 이전에 입력 명령을 찾아 간편하게 재실행 할 수 있습니다.
    F7키를 누르면 이전에 사용할 명령들의 목록을 확인할 수 있습니다. 
    문자를 입력한 상태에서 F8을 누르면 이전 명령중에서 해당 문자로 시작하는 명령을 찾을 수 있습니다.
  • 표준입출력 연계 : 콘솔에서의 텍스트 입출력을 표준입출력이라고 하는데 프로그램 간에 한 프로그램의 표준 출력을 다른 프로그램의 입력으로 연계하는 것을 의미하며 | 기호를 사용합니다. 파이프라인, 필터라는 용어를 사용합니다.
    가장 많이 사용하는 경우는 DIR이나 TREE등의 내용이 많은 경우 페이지 단위로 잘라서 보고 싶을 때는 명령 결과를 MORE 명령으로 연계시키면 간단히 페이지 단위로 결과를 확인할 수 있습니다.
    DIR | MORE
  • 입출력 대상 변경 : 표준 입출력 장치를 특정 파일이나 장치로 대치 시키는 것으로 출력 전환에는 > 를 사용하고 입력 변경은 < 기호를 사용합니다. 예를 들어 특정 프로그램의 표준 출력 결과를 화면이 아니라 특정 파일에 저장하고 싶으면 "DIR > a.txt"와 같이 사용하면 됩니다.

지금까지 다룬 윈도우 콘솔 명령들의 다른 운영체제에서도 약간의 명령만 다르지 유사한 구조를 가지고 있습니다. 프로그래밍을 배우신다면 익숙해지시길 다시 한번 권합니다.



댓글
댓글쓰기 폼