콘솔, 터미널, 프롬프트, 쉘 차이

JangDongyul·2022년 2월 11일
0

콘솔

1. 컴퓨터를 제어하는 물리적인 장치를 의미

2. 즉, 사람과 컴퓨터 사이에 대화할 수 있는 입출력장치를 의미

3. 콘솔은 명령을 입력하는 콘솔판과 컴퓨터 내의 정보가 표시되는 콘솔탁자로 구성

4. 즉, 콘솔판은 입력장치인 키보드를 의미, 콘솔탁자는, 출력장치인 모니터를 의미

콘솔 입력키보드 입력을 의미

콘솔 출력모니터로 출력을 의미

가상 콘솔(터미널 애뮬레이터)

1. 사람과 컴퓨터 사이에 키보드로 소통할 수 있는 수단

2. 지금은 마우스를 이용할 수 있는 GUI 환경이 보급되었으나
예전에는 키보드로 사람과 컴퓨터가 소통하는 CLI 환경이었다.

콘솔은 하드웨어, 터미널 애뮬레이터는 소프트웨어라는 차이가 있으나,

요즘에는 콘솔과 터미널 애뮬레이터 모두 소프트웨어로 구현되기 때문에 혼용되기도 한다.

(터미널도 원래는 콘솔의 일종으로 하드웨어 입출력 장치였는데, 터미널 역할을 하는 소프트웨어를 구현한 게 터미널 애뮬레이터(가상 콘솔이다.))

  1. 하드웨어 콘솔도 입출력 장치이자, 사람과 컴퓨터가 대화할 수 있는 수단인데
  2. 소프트웨어로 구현한 가상 콘솔도 입출력 장치이자, 사람과 컴퓨터가 대화할 수 있는 수단이니
    역할은 비슷하다고 볼 수 있겠다.

터미널 애뮬레이터의 역할
1. CLI 환경에서
2. 키보드 입력을 받는다.
3. 그러나 터미널 애뮬레이터는 키보드 입력을 받을 수는 있어도 해석하거나 수행하지는 못한다.
4. 터미널은 받은 키보드 입력을 쉘에게 전달한다.
5. 쉘은 터미널이 전달해준 키보드 입력을 해석하고 수행한 다음 출력결과를 터미널 애뮬레이터에 전달해준다.
6. 터미널 애뮬레이터는 출력결과를 모니터 화면에 출력해준다.

예를 들면, 터미널에 dir이라는 명령어를 입력하거나,
어떤 파일을 실행시키는 키보드 입력을 할 때,
터미널 자체의 기능은 입력을 받아주긴 하지만,
그 입력된 택스트를 해석하거나 수행하지는 못하기에
쉘이 그 입력을 해석해주고 수행해주는 것이다.

쉘이 해석하고 수행한 다음, 출력결과를 터미널 애뮬레이터에게 전달해주면
터미널 애뮬레이터는 화면에 출력해서 사용자가 볼 수 있게 해준다.

터미널 애뮬레이터는 CLI 환경의 입출력 소프트웨어라고 보면 된다.

예1)
우분투 터미널

예2)
윈도우의 파워쉘 터미널

맥에도 터미널이 있는데, 맥북이 없어서 사진을 올리지 못했다
구글링 하시면 사진 자료가 많이 나온다.

프롬프트

1. 터미널에서 보일 것이다.

2. 컴퓨터가 입력받을 준비가 되었다는 것을 화면에 알려주는 신호 또는 메세지다

아래처럼 프롬프트가 안뜨면, 사용자로부터 명령을 입력받을 준비가 안된 것이다.

계정명@서버명: 현재경로$

으로 되어있다.

$은 일반 사용자 계정으로 로그인 했을 때 나오는데
root 관리자 계정으로 로그인 하면 $#으로 바뀝니다
계정명@서버명: 현재경로#

터미널은 키보드의 입력을 받고, 화면에 출력을 하는 기능은 있지만
터미널 자체에서 키보드로부터 받은 입력을 해석하고 수행하는 기능은 없다.

1. 터미널만으로는 사람이 입력한 명령어를 해석할 수 없다.

2. 이용자와 시스템간의 대화를 가능하게 해주는 역할

3. 즉, 명령 해석기 역할을 해준다.

4. CLI 환경에서의 쉘은 명령줄 쉘이라고 부르고,
    GUI 환경에서의 쉘은 그래픽 쉘이라고 부른다.

5. 쉘도 여러 종류가 있다. 가장 유명한 쉘은 Bash 다.

예) 명령프롬프트 창에 ls -al를 입력해보면

이렇게 현재 디렉토리의 목록이 보인다.

1. 사용자가 터미널에 입력을 하면
2. 터미널은 입력받은 내용을 쉘에게 보내고
3. 쉘은 사용자의 입력을 해석하고, 수행한 다음 결과를 터미널로 보낸다.
4. 터미널은 쉘에게 전달받은 결과를 화면에 출력을 하여 사용자가 볼 수 있는 것이다

쉘이 어떤 원리로 명령어를 해석하고 수행하는지 궁금하시면
아래 링크를 클릭해주세요!

https://velog.io/@wordi/쉘이-명령어를-해석하고-수행하는-방법


공부에 도움이 된 링크들입니다.

Udacity 채널, The Terminal vs The Shell

생활코딩 채널, Linux - Shell 1 : intro

0개의 댓글