Linux에서 명령어를 입력하고 실행할 수 있는 환경을 제공하는 Shell과 Terminal은 비슷한 개념처럼 보이지만, 역할이 다르다.
💡 Shell은 "명령어 해석기" 역할을 하는데 사용자가 입력한 명령어를 해석하고 실행하는 프로그램이다.
🔹 Shell의 주요 기능
명령어를 입력받고 해석하여 실행 (예: ls, cd, mkdir 등)
스크립트 실행 (.sh 파일 실행)
프로세스 관리 및 환경 변수 설정 (export, alias 등)
리디렉션 (>, >>, | 등) 및 파이프 기능 지원
지원
🔹 대표적인 Shell 종류
| Shell 종류 | 설명 |
|---|---|
| Bash (Bourne Again Shell) | 대부분의 Linux 배포판에서 기본적으로 사용 |
| Zsh (Z Shell) | Bash보다 기능이 많고 자동 완성 기능이 강력함 |
| Fish (Friendly Interactive Shell) | 사용하기 쉬운 직관적인 Shell |
| Tcsh (TENEX C Shell) | C 언어 스타일의 명령어 해석기 |
결론: Shell은 명령어를 해석하고 실행하는 프로그램이다.
💡 Terminal은 "Shell을 실행하는 프로그램"이고, 사용자가 Shell과 상호작용할 수 있도록 화면을 제공하는 입출력 인터페이스다.
🔹 Terminal의 주요 기능
🔹 대표적인 Terminal 프로그램
| Terminal 프로그램 | 설명 |
|---|---|
| GNOME Terminal | Ubuntu 기본 터미널 |
| Konsole | KDE 데스크탑 환경의 기본 터미널 |
| Alacritty | 고성능 GPU 가속 터미널 |
| Tmux | 터미널 세션을 관리할 수 있는 터미널 멀티플렉서 |
| iTerm2 | macOS용 고급 터미널 |
결론: Terminal은 Shell을 실행할 수 있도록 도와주는 프로그램(인터페이스)입니다.
1️⃣ Terminal을 실행하면 Shell이 자동으로 실행됨.
2️⃣ 사용자는 Terminal에서 명령어를 입력하고 실행.
3️⃣ Shell이 명령어를 해석하고 실행한 결과를 Terminal에 출력.
즉, Terminal은 Shell을 실행하는 창(도구)이고, Shell은 명령어를 해석하는 프로그램!