📢 들어가며

이번 포스팅에선 나 혼자 헷갈려하던...
리눅스, 쉘, 터미널 등의 개념 및 용어 정리를 해볼 것이다.

🐧 리눅스(Linux)

윈도우나 MacOS 같은 컴퓨터의 운영체제(Operating System).

💡 운영체제 (Operating System)

컴퓨터 하드웨어를 구동하고 사용자의 요청을 받아 여러가지 응용 프로그램을 실행시키는 프로그램

 

통상적으로 운영체제 그 자체라고 정의되어있긴 하지만,
사실 리눅스는 커널이다.

💡(kernel) 커널

운영체제(OS)의 주요 구성 요소.
컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.
직역하면 '핵심'이라는 뜻이다.
OS 내에 위치하고, 하드웨어의 모든 주요 기능을 제어하기 때문에 붙은 이름이다.
메모리 위에 항상 상주.

 

때문에 리눅스 커널 혼자 만으로는 운영체제의 역할을 모두 다한다고 할 수 없다.
이를 해결하기 위해 자유 소프트웨어 재단에서 만든 GNU와 함께 사용하며,
GNU/Linux 라는 형태로 사용하게 된다.

 

우리가 운영체제로서 리눅스라고 부르는 것은,
GNU/Linux에서 기능이 추가된 것이라고 볼 수 있다.

🐧 리눅스 배포판

리눅스는 리눅스 커널에 GNU 및 여러 기능을 추가하여 만들어진 운영체제라고 위에서 설명했다.
리눅스 배포판은 이 여러 기능이 추가된 운영체제를 의미한다.

즉, 리눅스 배포판이란 리눅스 커널을 사용하되, 목적에 따라 다양한 프로그램을 함께 제공하는 운영체제를 의미한다.

 

💡 대표적인 리눅스 배포판

  • Red Hat
  • CentOS
  • Ubuntu
  • RHEL

🐧 쉘(Shell)

직역하면 껍질이라는 뜻이다.
쉘은 말 그대로 커널(kernel)을 감싸고 있는 껍질이다.
사용자는 커널에 접근하기 위해선 쉘을 거쳐야한다.
즉, 쉘은 커널과 사용자 사이의 매개체 역할을 하는 프로그램을 말한다.

 

💡 예
우린 종종 윈도우환경에서 명령 프롬프트(CMD)를 통해
운영체제에 접근하여 뭔가 실행하거나,
디렉토리를 만들거나(mkdir) 디렉토리를 이동(cd) 한다.
이때 사용하는 명령 프롬프트(CMD)를 shell 이라고 한다.

 

쉘은 사용자의 의도를 운영체제에 전달해주는 "창구" 역할을 한다.

🐧 쉘 스크립트(Shell Script)

쉘(Shell)에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch) 파일이다.
즉, 운영체제의 Shell을 이용하여 한줄 씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 방식의 프로그램이다.

💡 배치(batch) 파일

직역하면 '(일괄 처리를 위해) 함께 묶다' 라는 뜻이다.
명령어를 한번에 적어놓고 실행할 수 있게 만들어서 사용자가 타이핑 치는 수고를 줄여놓은 명령어 스크립트이다.
.bat 또는 .cmd 형식의 확장자 파일을 직접 실행하거나 명령 프롬프트에서 배치 파일의 이름으로 실행 할 수 있다.

🐧 배시(Bash)

Boourn Again Shell의 약자.
가장 널리 쓰이는 쉘 프로그램 중 하나이다.

 

💡 대표적인 shell 프로그램

운영체제(OS) shell 종류
Windows cmd.exe(명령 프롬프트)
Linux csh, bash, zsh 등

쉘에서 사용되는 쉘 명령어는 쉘을 종류에 따라 다를 수 있다.

 

💡 예

  • cmd 의 디렉토리 목록 출력 명령어 : dir
  • Bash Shell의 디렉토리 목록 출력 명령어 : ls

🐧 터미널(terminal)

쉽게 설명하자면, 버스 터미널처럼
무언가 들어오고(input), 나가는(output) "창구"를 의미한다.

 

bash 나 cmd 에서 CLI(command line interface) 방식으로 입력과 출력을 얻는
화면 자체를 터미널이라고 한다.

💡 CLI (Command Line Interface)

명령 줄 인터페이스.
터미널을 통해 사용자와 컴퓨터가 상호작용하는 방식을 뜻한한다.
입력과 출력형태로 동작하며 모두 text 형태로 이루어져 있다.

+ Recent posts