windows로 개발하다보면 그림과 같은 cmd창에서 작업할 일이 많다. cmd란 어떤 말의 준말이고 뭐하는 녀석일까?
1. cmd란?
cmd는 Command Prompt의 준말이며 한국어로 명령 프롬프트라는 뜻이다.
여기서 "Command"란 사용자가 컴퓨터에 내리는 명령어를 의미하고,
"Prompt"는 사용자에게 입력(명령)을 기다리고 있다는 신호(표시)를 의미한다.
즉, command prompt는 사용자가 컴퓨터에 명령을 입력할 수 있는 *인터페이스를 의미한다. 줄여서 cmd(씨엠디)라고 부르는 이 녀석은 사용자가 컴퓨터에 명령을 입력할 수 있는 인터페이스를 의미한다. windows 운영체제에서는 명령 프롬프트(command prompt)를 통해 사용자가 텍스트 기반의 명령어를 입력하고 실행(**CLI)할 수 있다.
*인터페이스(interface)란 IT에서는 두 가지 시스템, 장치 또는 프로그램 사이에서 상호 작용할 수 있도록 연결되는 지점(접점) 또는 방법을 의미한다. cmd는 사용자가 cmd를 통해 컴퓨터 프로그램을 조작하거나 데이터를 전송하는 등의 상호 작용을 할 수 있도록 도와주는 수단이 된다. cmd는 사용자와 운영 체제 사이의 인터페이스로 작용한다. 사용자는 cmd를 통해 텍스트 기반의 명령어를 입력하고, 운영체제는 이를 이해하여 해당하는 작업을 수행한다. 이런 식으로 사용자는 cmd를 통해 운영체제와 상호작용할 수 있다.
**텍스트로 명령어를 입력하고 실행하는 텍스트 기반 컴퓨터(시스템) 환경을 CLI(Command Line Interface)라고 하며, 마우스 커서가 있고 폴더 아이콘이 있는 등 그래픽 바탕에서 작업하는 환경을 GUI(Graphic User Interface)라고 한다.
cmd는 windows 계열 커맨드라인 해석기(CLI: Command Line Interface)이기 때문에 windows 환경에만 있고, MacOS와 Linux는 유닉스 기반의 운영 체제로 terminal(터미널)을 사용하여 cmd와 비슷한 기능을 제공한다. terminal도 cmd처럼 커맨드 라인 인터페이스(CLI)를 통해 사용자가 컴퓨터에 명령을 내리고 상호 작용하는데 사용된다.
이외에도 유사한 개념으로 powershell, terminal, shell이 있다.
- Powershell(파워쉘)은 windows 환경에서 실행되는 명령 줄 셸 및 스크립트 언어로 cmd보다 강력하고 다양한 기능을 제공한다. 시스템 관리, 자동화, 스크립팅 등을 위해 사용되며 .NET 프레임워크와 통합을 갖고 있어 보다 넓은 기능을 수행한다.
- Terminal(터미널)은 텍스트 기반의 사용자 인터페이스를 제공하는 프로그램 또는 어플리케이션으로 MacOS, Linux 기반에서 사용가능하다. windows 환경에서도 terminal을 사용하고 싶다면 windows terminal이라는 애플리케이션을 통해 여러 환경(cmd, powershell, linux 등)을 통합해서 사용할 수 있다. terminal을 인터페이스라고 정의하지 않고 인터페이스를 제공하는 프로그램 또는 어플리케이션이라고 설명한 이유는 terminal은 shell을 실행하고 명령어를 입력할 수 있는 창 또는 환경이기 때문이다. 다른 말로 shell을 실행하기 위한 포장지(wrapper)이다. shell을 실행하기 위해 왜 이런 포장지가 필요하냐면, terminal/console에서 내리는 명령어가 커널 (kernel)이나 하드웨어(H/W)가 즉각적으로 이해할 수 있는 언어가 아니다. 그래서 번역 역할을 해주는 중간다리 역할이 필요하다.
- Shell(쉘, 셸)은 운영 체제에서 사용자와 시스템 간의 상호 작용을 담당하는 인터페이스를 의미한다. 보통 구글검색을 해보면 shell은 리눅스 커널과 사용자를 연결해주는 인터페이스라고 설명을 한다. 커널은 shell에서 내린 명령을 받아 하드웨어에 직접적으로 명령을 내려주는 역할을 한다. 즉 순서가 사용자 → console(terminal, cmd, ...) → shell → kernel →H/W 순으로 명령이 전달된다. shell은 단어 뜻이 조개껍데기라는 의미에서도 알 수 있듯, 커널을 감싸고 있기 때문에 shell이라고 불린다. shell은 Unix 및 Linux 시스템에서 bash, zsh, fish 등 다양한 셸(shell)이 존재하며, 사용자가 커맨드를 입력하여 시스템 명령을 실행하고 프로그램을 실행하는데 사용한다.
다시 정리하면 각각의 운영체제에 따라 shell을 조작할 수 있는 다양한 *console(콘솔: 컴퓨터와 사용자 간의 상호 작용을 위한 환경이나 장치, 툴)이 존재한다. windows에서는 cmd, powershell이 있고, Linux나 MacOS에서는 terminal이 있다. 사용자가 해당 console로 shell에게 명령을 내리면, shell은 사용자 명령을 kernel을 거쳐 H/W에 전달한다.
*console(콘솔)은 IT에서 컴퓨터와 사용자 간의 상호 작용을 위한 환경이나 장치를 가리키는 용어이다. 다양한 의미로 쓰이는데, 컴퓨터 환경에서의 콘솔, 게임 콘솔, 개발자 콘솔, 웹 브라우저 콘솔 등으로 쓰인다.
- 컴퓨터 환경에서의 콘솔
: 텍스트 기반의 사용자 인터페이스를 의미하며 보통 cmd나 터미널과 같은 환경을 가리킨다.
- 게임 콘솔
: 비디오 게임을 실행하고 플레이하는데 사용되는 기기를 의미. playstation, Xbox, 닌텐도(Nintendo) 등 게임을 실행하는데 사용되는 전용 장치로, 게임 소프트웨어를 실행하고 조작할 수 있는 인터페이스를 제공한다.
- 개발자 콘솔
: 개발 환경에서 프로그램 실행과 디버깅을 위해 사용되는 툴이나 환경을 의미한다.
- 웹 브라우저 콘솔
: 웹 개발에서 사용되며, 웹 브라우저의 개발자 도구에 있는 콘솔 창을 의미한다. 크롬에서 f12를 누르면 사이드에 개발자 툴이 나타는데, 상위에 console 탭에 들어가면 javascript 코드 실행 결과를 보거나 디버깅을 할 수 있는 환경이 제공된다.
2. cmd로 하는 주요 작업
1) 디렉터리 탐색과 파일 관리
- dir: 현재 디렉터리의 파일 목록을 보여줍니다.
- cd: 디렉터리를 변경합니다.
- mkdir: 새로운 디렉터리를 생성합니다.
- del: 파일을 삭제합니다.
2) 시스템 정보 확인:
- ipconfig: 네트워크 관련 정보(IP 주소 등)를 확인합니다.
- systeminfo: 시스템 정보를 표시합니다.
- tasklist: 현재 실행 중인 프로세스 목록을 보여줍니다.
3) 파일 조작과 실행:
- copy: 파일을 복사합니다.
- move: 파일을 이동시킵니다.
- start: 특정 프로그램이나 파일을 실행합니다.
4) 기타 유틸리티 및 도구:
- ping: 네트워크 상태를 확인합니다.
- attrib: 파일의 속성을 변경합니다.
- taskkill: 프로세스를 강제로 종료합니다.
p. s.
chatgpt, google search를 통해 정리한 내용입니다.
내용 오류와 같은 피드백 주시면 감사히 반영하겠습니다.
'IT study > 99. etc: IT 상식' 카테고리의 다른 글
프로그래밍 도구 설치 후 cmd 재시작하는 이유 (0) | 2023.11.22 |
---|---|
빅데이터 플랫폼 아키텍처의 미래 (0) | 2023.11.15 |
컴퓨팅 및 데이터 처리 환경: 엣지, 온프레미스, 클라우드 (0) | 2023.08.18 |
iso (0) | 2022.05.24 |
데이터 사일로(Data silo) (0) | 2022.04.21 |