
Shell and Shell Script
Shell?
Shell은 사용자가 운영체제(OS)와 상호작용할 수 있도록 해주는 명령어 기반 인터페이스 프로그램 (CLI)입니다 (GUI 프로그램과 대비됨). 사용자가 입력한 명령어를 받아 운영체제의 핵심인 커널(Kernel)에 전달하고, 그 결과를 사용자에게 다시 보여주는 중개자 역할을 수행합니다.
Shell의 종류
| Shell 종류 | 설명 |
| Bourne Shell (sh) | 최초의 표준 Unix Shell, 스크립트 기반의 기초 |
| Bourne Again Shell (bash) | GNU 프로젝트에서 개발한 대표적 셸, 대부분의 Linux 배포판에서 기본 |
| C Shell (csh) | C 언어 문법 기반, 일부 개발자에게 친숙 |
| Z Shell (zsh) | 자동 완성 등 Bash 대비 확장 기능 풍부 |
| Fish Shell | 사용자를 위한 직관적인 명령어 보조 및 하이라이트 기능 |
Shell Script란?
Shell Script는 셸 환경에서 실행할 수 있는 명령어들을 순차적으로 작성한 자동화 명령 모음 파일입니다. .sh 확장자를 사용하며, 반복되는 명령을 단일 실행으로 처리할 수 있습니다.
Shell Script 주요 활용처
| 목적 | 설명 |
| 설치 자동화 | 여러 패키지 설치, 시스템 설정 등을 한 번에 처리 |
| 서버 환경 구성 | 사용자 생성, 포트 개방, 로그 디렉토리 생성 등 |
| Batch 작업 실행 | 주기적 데이터 정리, 백업, 로그 수집 |
| LLM 실험 환경 구성 | Python 환경, LLM 도구, 모델 등 자동 세팅 |
CLI → Shell → Interpreter → HW: 시스템 처리 흐름
Web App 또는 CLI 프로그램이 물리적 하드웨어까지 도달하는 경로는 다음과 같습니다:
| 단계 | 설명 | 대표 예시 |
| ① 사용자 명령 작성 | 명령어를 텍스트로 입력 | VSCode, Vim, Notepad |
| ② 명령 전달 인터페이스 | 명령어를 운영체제에 전달 | Terminal, PowerShell, iTerm |
| ③ 명령 해석기 | Shell이 명령어를 파싱 및 해석 | Bash, Zsh, Fish |
| ④ 실행기 호출 | Interpreter 또는 프로그램이 실행됨 | Python, Node.js, GCC 등 |
| ⑤ 실제 동작 | OS 커널이 하드웨어를 통해 명령 실행 | CPU, 메모리, 디스크 I/O 등 |
실습: Shell Script로 LLM 실행 환경 구성
Ubuntu (WSL2, Cloud VM, 또는 리눅스 기반 서버) 환경에서 Bash Shell을 활용해 LLM 실행을 위한 기본 개발 환경을 준비합니다.
Shell Script 예시 (setup_llm.sh)
shell
#!/bin/bash
set -e # 에러 발생 시 즉시 종료
echo "==== Python 설치 확인 ===="
if ! command -v python3 &> /dev/null; then
echo "Python3이 설치되어 있지 않아 설치합니다..."
sudo apt update && sudo apt install -y python3
else
python3 --version
fi
echo "==== pip 설치 ===="
sudo apt install -y python3-pip
echo "==== ollama 설치 ===="
curl -fsSL https://ollama.com/install.sh | sh
echo "==== ollama 서비스 실행 ===="
ollama serve &
echo "==== 모델 다운로드 (예: mistral) ===="
ollama run mistral
echo "==== 설치 완료 ===="
Shell Script 실행 방법
shell
# 1. 파일 저장
nano setup_llm.sh # 또는 원하는 텍스트 에디터 사용
# 2. 실행 권한 부여
chmod +x setup_llm.sh
# 3. 스크립트 실행
./setup_llm.sh