Notion Image

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