본문 바로가기
프로그래밍/운영체제

터미널(Terminal)과 셸(Shell)의 관계에 대해서

by bantomak 2024. 12. 8.
반응형

터미널(terminal)

터미널(terminal)은 컴퓨터와 사용 간에 상호작용할 수 있게 연결하는 장치이다. 컴퓨터와 사용자의 상호작용에서 가장 중요한 것은, 사용자가 컴퓨터에게 명령을 전달하고 컴퓨터는 해당 명령을 수행한 결과를 사용하게에 전달하는 것이다. 사용자가 컴퓨터에 명령을 전달하는 장치를 입력 장치, 컴퓨터가 사용자에게 결과를 보여주는 장치를 출력 장치라고 한다.

VT100 터미널의 모습

이 당시 터미널은 입출력을 위한 도구일 뿐이었다. 실제 연산은 터미널과 연결된 메인프레임(mainframe, 대형 컴퓨터)에서 수행했다. 요즘은 이런 터미널을 사용하지 않는다. 그 대신 소프트웨어로 동작하는 가상 터미널 프로그램을 사용한다. 운영체제에 설치된 명령 프롬프트 같은 터미널 프로그램이 바로 가상 터미널이다.

메인프레임과 터미널의 모습

터미널의 독립성

터미널은 독립적이다. 즉, 터미널은 다양한 셸을 실행할 수 있는 환경만 제공한다.

예를 들어, 동일한 터미널에서 bash, zsh, 또는 fish와 같은 여러 종류의 셸을 실행할 수 있다.

셸(Shell)

셸(Shell)은 CLI 프로그램이다. 사용자는 셸을 통해 운영체제에 명령을 내리고 결과를 확인한다. 터미널은 컴퓨터와 사용자 간 상호작용할 수 있는 하드웨어라면, 셸은 운영체제와 사용자 간 상호작용을 지원하는 소프트웨어이다.

다양한 셸의 종류

  • Csh(C SHell)
  • Ksh(Korn SHell)
  • Ash(Almquist SHell)
  • Bash(Bourne Again Shell) 등등

터미널과 셸의 관계

  • 터미널은 사용자가 셸과 상호작용할 수 있는 창구이다.
  • 셸은 사용자의 명령을 해석하고 판단하여 운영체제에게 전달하고 결과를 반환한다.
  • 이 둘은 함께 사용되지만, 독립적으로 동작할 수 있다.
  • 현대 운영체제는 가상 터미널과 다양한 셸을 제공하여 사용자에게 유연하고 강력한 사용자 인터페이스를 제공한다.

댓글