터미널과 쉘의 차이

김민재·2025년 5월 23일

CS

목록 보기
1/12

nvm 명령어를 터미널에서 실행해서 컴퓨터에 설치된 node.js의 버전들을 확인하려고 했는데,

터미널과 쉘의 차이는 무엇인지 궁금해져서 해당 내용을 정리하였다.


터미널(terminal)

terminal의 사전적 의미는 다음과 같다.

terminal: 철도·버스 노선 등의 종점. 또는, 많은 교통 노선이 모여 있는 역. 순화어는 '종점'.

컴퓨터에서의 'terminal'의 의미를 알기 위해서는 과거로 돌아가야 한다.
과거 중앙 컴퓨터(메인프레임)을 여러 사용자가 공유하던 시절, 사용자 한 명은 자신의 끝점(endpoint)에서 명령을 입력했다.
이곳이 중앙 컴퓨터와의 연결 지점이자 사람이 컴퓨터와 만나는 '접점', '끝단'이기 때문에 'terminal'이라는 이름이 붙었다.

이 터미널은 하드웨어 장치였고, 이를 모방하여 소프트웨어로 구현한 것이 현재 사용되고 있는 터미널이기 때문에 '터미널 에뮬레이터'라는 표현이 더 정확할 듯하다.

우리는 이러한 터미널 에뮬레이터를 통해 GUI 없이 키보드만으로도 컴퓨터에게 다양한 명령을 내림으로써 연산 기능을 수행할 수 있다.


쉘(shell)

shell의 사전적 의미는 다음과 같다.

shell: 껍데기, 외피, 껍질

컴퓨터에는 핵심인 운영체제 커널(Kernel) 이 있다. 하지만 사용자가 직접 커널과 대화하기는 어려우므로, 사용자와 커널 사이의 껍질인 쉘(shell)을 통해 대화를 주고받는다.

따라서 쉘은 사용자의 입력을 받아 커널에 전달하고, 그 결과를 다시 사용자에게 보여주는 역할을 한다.

즉 사용자가 입력하는 명령어들을 해석하는 해석기 프로그램이라고 보면 된다.

사용자는 터미널에 명령을 입력하고, 쉘은 이 명령을 해석하여 커널에 전달한다.


요약

  • 터미널: 쉘을 실행하기 위한 사용자와 컴퓨터의 인터페이스
  • : 터미널 상에서 실행되는 명령어 해석기 프로그램
profile
넓이보다 깊이있게

0개의 댓글