development

셸(Shell)과 터미널(Terminal) 차이

여름싼타 2022. 12. 13. 06:20
반응형

텍스트를 사용하여 특정 작업을 수행하기 위한 명령어를 컴퓨터에 제공하는 경우 명령줄 인터페이스를 사용한다고 한다. CLI를 사용하는 경우 그래픽 사용자 인터페이스 대신 텍스트 명령을 사용하여 프로그램을 작동시킨다. CLI을 사용하는 것은 컴퓨터와 대화하는 다른 방법이다. Linux에서 CLI를 가리킬 때 대부분의 경우 bash 셸(Shell) CLI을 가리킨다. 그러나 많은 경우 우리는 터미널 에뮬레이터라고 불리는 셸과 상호 작용하는 프로그램을 사용한다. 셸과 터미널은 서로 다르지만 종종 같은 의미로 사용된다.

 

셸(Shell)

커널은 운영 체제의 가장 중요한 구성 요소이다. 커널은 컴퓨터 상의 모든 물리 하드웨어를 인식하여 각 컴포넌트가 서로 통신할 수 있도록 한다. 루트에서 커널은 전달된 명령을 잡고 그것들을 하드웨어로 처리한다.

 

 

사용자는 커널과 직접 인터페이스 하지 않는다. 사용자와 커널 사이에는 셸이라고 불리는 프로그램이 있으며, 이 프로그램은 사용자의 입력을 받아 그것들을 커널에 전달하는 역할을 담당하고 있다. 간단히 말해서 셸은 키보드에서 명령어를 꺼내 커널에 전달하고 실행하는 프로그램이다. 사용자와 커널 간 인터페이스 역할을 한다.

 

Bash Shell

리눅스 배포판의 대부분에는 bash 셸이라고 불리는 셸이 포함되어 있다. Bash는 원래 GNU Project의 셸로 SteveBourne에 의해 쓰인 원래의 Unix 셸 프로그램 sh에 영감을 받아 이를 모방하여 만들어졌다. SteveBourne에 의해 쓰인 sh에서 매우 영감을 얻었기 때문에 GNU 프로젝트 사람들은 Bourne AgainShell의 약자인 새로운 shellbash에 이름을 붙이기로 했다.

Bash 셸의 많은 대안은 ZSH(ZShell), Fish, KSH(KornShell) 등 리눅스 커널에서 사용할 수 있다. 셸 프로그램에 따라 기능은 다르지만 기본적인 명령어와 셸 간의 상호작용 방법은 바뀌지 않는다.

 

터미널(Terminal)

Linux의 다양한 배포판에는 Ubuntu 등 데스크톱 환경이 설치되어 있다. 우분투의 데스크탑 환경은 GNU 네트워크 개체 모델 환경을 나타내는 GNOME의 수정된 버전이다. GNOME은 그래픽 사용자 인터페이스(GUI)이자 Linux 운영 체제 사용자를 위한 컴퓨터 데스크톱 응용 프로그램 세트다. GNOME와 같은 Graphical User Interface(GUI)를 사용할 경우 커널이 실행할 수 있는 셸 명령어 및 경로 명령어와 대화할 수 있는 소프트웨어가 필요하다. 이 프로그램은 데스크톱 인터페이스 상의 셸 환경을 에뮬레이트 하기 때문에 에뮬레이터라고 불린다.

 

터미널 소프트웨어는 에뮬레이터의 완벽한 예다. 터미널은 기본적으로 Ubuntu Desktop 환경에 포함되어 있으며, 셸 액세스에 사용할 수 있다. 많은 에뮬레이터가 이용 가능하며 단말기는 그 중 하나에 불과하다. 이해할 필요가 있는 것은 에뮬레이터는 셸이 아니라는 것이다. 이는 데스크톱 환경에서 셸을 에뮬레이트 하여 통신할 수 있는 소프트웨어의 일부에 불과하다.

 

참고 : https://dev.to/manikbajaj/the-difference-between-the-shell-and-the-terminal-27ah

반응형