Programming/ETC

Command Prompt(CMD), Git bash, PowerShell

리버김 2023. 3. 27. 17:04
VSCode를 사용하다 보면, 아래와 같이 터미널에 여러 버전이 있는 것을 볼 수 있다. 싸피에서 개발을 시작할 때부터 Windows 환경에서 Git Bash만 계속 써오던 나는 이 다양한 터미널들에 대해 자세히 알아본 적이 없었다. 하지만 실제로 일을 하면서부터는 모르는 게 조금 부끄러워져서 정리해본다.

내 VSCode 화면

 

터미널이란?

먼저 잘 모르고 사용했던 '터미널'이라는 단어부터 정리해보자. 터미널은 원래 유닉스 기반의 컴퓨터에서 복수의 사용자들이 하나의 컴퓨터에 접속하기 위해 사용했던 단말이었다고 한다.

 

이제 Personal한 컴퓨터를 사용하기 위해 필요가 없어진 터미널, 그 의미가 변화해서 명령어 입력을 통해 컴퓨터를 직접 제어하기 위한 소프트웨어라는 뜻을 가진다. 그리고 모든 운영체제는 기본적인 터미널을 내장하고 있다.

 

CLI(Command Line Interface)의 사용이 곧 터미널의 존재로 가능한 거다.

 

쉘이란?

쉘은 터미널을 사용하기 위한 소프트웨어 환경을 말한다. 키보드 입력 등이 가능하도록 해주는 소프트웨어라는 말이다.

 

유닉스(리눅스) 쉘에는 sh, ksh, csh, bash가 있으며, Mac OOS는 유닉스 커널, Windows는 과거에는 cmd가 기본, 현재는 PowerShell이 기본값이라고 한다.

 

CMD와 PowerShell의 차이

위까지 설명을 듣고 나니 CMD가 있음에도 PowerShell이 개발된 이유와, 어떤 차이가 있는지가 궁금해졌다.

 

CMD에는 몇가지 한계가 있었는데, 복잡한 스크립트 생성이 불가했다는 것이다. PowerShell은 cmdlet라고 하는 CMD와는 다른 명령어 집합을 사용하는데, 이를 통해 보다 복잡하고 많은 명령을 컴퓨터에게 내릴 수 있다. 또, 한 프로그램에서 다른 프로그램으로 정보를 쉽게 전송할 수 있는 방법인 '파이프'를 활용할 수 있다. 또, CMD에서 할 수 있는 모든 작업은 PowerShell에서도 할 수 있다.

 

그렇다면 Git bash는?

사실 Git CMD라는 것이 있다. CMD에서 Git 명령어를 사용할 수 있도록 한 것이다. Git 'bash'를 사용하는 이유를 알려면 우선 bash가 무엇인지 알아야 한다. Git bash는 Git 명령어를 사용할 수 있는 bash니까 말이다.

 

bash란

위에서 적었듯 bash는 유닉스(리눅스)의 기본 쉘이다. Brain Fox가 GNU 프로젝트의 일환으로 새롭게 작성한 유닉스 쉘이다. Git bash를 설치하면 Windows 환경에서 git과 bash 모두 사용할 수 있게 된다.

반응형