iBetter Books
수정

쉘 스크립트 출제 유형 분석

리눅스마스터 2급 시험을 처음 접하면 어디서부터 준비해야 할지 막막합니다. 이 절에서는 시험 구조를 먼저 파악하고, 쉘 스크립트와 연결되는 출제 영역을 정리합니다.

시험 구성 개요

리눅스마스터 2급은 한국정보통신진흥협회(KAIT)가 주관하는 국가공인 자격증입니다. 시험은 필기와 실기로 나뉩니다.

필기 시험.

  • 1과목: 리눅스 운영 및 관리 (50문항)
  • 2과목: 리눅스 활용 (50문항)
  • 합격 기준: 과목별 40점 이상, 평균 60점 이상
  • 문제 형식: 4지선다 객관식

실기 시험.

  • 단답형 + 서술형 혼합
  • 명령어 작성, 설정 파일 내용, 출력 결과 예측 등
  • 합격 기준: 60점 이상

쉘 스크립트 관련 출제 비중

필기 시험 기준으로 쉘 스크립트와 직결되는 영역을 정리합니다.

출제 영역 예상 비중 관련 PART
변수와 특수변수 약 8% PART 03
조건문/반복문 문법 약 10% PART 04
리다이렉션과 파이프 약 8% PART 02
정규표현식, grep/sed/awk 약 12% PART 06, 07
파일 권한과 chmod 약 10% PART 02
프로세스 관리 약 10% PART 08
네트워크 명령어 약 8% 이 PART
기타 시스템 관리 나머지

출제 비중은 회차마다 다소 차이가 있지만 위 영역은 꾸준히 출제됩니다.

자주 출제되는 유형별 정리

변수와 특수변수

#!/bin/bash# 파일: 특수변수 예시echo "스크립트명: $0"echo "인수 개수: $#"echo "모든 인수: $@"echo "직전 종료코드: $?"echo "현재 PID: $$"

시험에서는 다음 특수변수를 자주 묻습니다.

변수 의미
$0 스크립트 파일명
$1 ~ $9 위치 매개변수
$# 전달된 인수의 개수
$@ 모든 인수 (각각 따로)
$* 모든 인수 (하나의 문자열)
$? 직전 명령의 종료 코드
$$ 현재 쉘 프로세스 PID
$! 마지막 백그라운드 프로세스 PID

조건문과 반복문 문법

if 문의 조건 표현식에서 자주 출제되는 옵션입니다.

# 파일 존재 여부 확인if [ -f /etc/passwd ]; then    echo "파일 존재"fi# 디렉토리 확인if [ -d /tmp ]; then    echo "디렉토리 존재"fi# 문자열 비교if [ "$VAR" = "hello" ]; then    echo "일치"fi# 숫자 비교if [ "$NUM" -gt 10 ]; then    echo "10보다 큼"fi
옵션 의미
-f 일반 파일
-d 디렉토리
-e 존재 여부 (모든 파일 유형)
-r / -w / -x 읽기/쓰기/실행 권한
-z 문자열 길이가 0
-n 문자열 길이가 0이 아님
-eq / -ne 정수 같음/다름
-lt / -gt 정수 작음/큼
-le / -ge 정수 작거나 같음/크거나 같음

리다이렉션과 파이프

# 표준 출력을 파일로ls > list.txt# 표준 오류를 파일로ls nofile 2> error.txt# 표준 출력과 오류를 같은 파일로ls nofile > all.txt 2>&1# 파이프로 연결cat /etc/passwd | grep root | cut -d: -f1

시험에서 2>&1의 의미를 묻거나, 출력 결과를 예측하는 문제가 자주 나옵니다.

정규표현식과 grep/sed/awk

# 기본 정규표현식grep "^root" /etc/passwd      # root로 시작하는 줄grep "bash$" /etc/passwd      # bash로 끝나는 줄grep "ro*t" /etc/passwd       # r 다음에 o가 0번 이상# 확장 정규표현식 (grep -E 또는 egrep)grep -E "root|daemon" /etc/passwd# sed 치환sed 's/old/new/g' file.txt# awk 필드 처리awk -F: '{print $1}' /etc/passwd

자주 출제되는 함정 패턴 5가지

함정 1: $@$*의 차이. 큰따옴표로 감쌀 때 동작이 달라집니다. "$@"는 각 인수를 별도 단어로, "$*"는 모든 인수를 하나의 단어로 처리합니다.

함정 2: [[[ 의 차이. [는 POSIX 표준 명령어이고, [[는 Bash 확장입니다. [[ ]] 안에서는 &&, ||를 사용할 수 있고, 변수를 따옴표 없이 써도 단어 분리가 일어나지 않습니다.

함정 3: 2>&1 순서. > file 2>&12>&1 > file은 결과가 다릅니다. 앞의 경우 표준 출력과 오류가 모두 file에 저장되지만, 뒤의 경우 표준 오류만 원래 표준 출력(터미널)으로 가고 표준 출력만 file에 저장됩니다.

함정 4: for 루프의 세미콜론 위치.

for i in 1 2 3; do echo $i; done   # 올바른 형식

do 앞에 반드시 세미콜론 또는 줄바꿈이 있어야 합니다.

함정 5: case 문의 패턴 종결자. 각 패턴 블록은 ;;으로 끝납니다. )는 패턴 뒤에, ;;는 명령 뒤에 옵니다.

case "$VAR" in    yes|YES) echo "긍정" ;;    no|NO)   echo "부정" ;;    *)       echo "기타" ;;esac

학습 전략 — 이 교재와의 연계

이 교재의 PART별 학습 내용이 시험 영역과 어떻게 연결되는지 정리합니다.

시험 영역 학습 PART 핵심 내용
변수, 특수변수 PART 03 변수 선언, 산술 연산, 특수변수
조건문/반복문 PART 04 if, case, for, while, until
함수와 배열 PART 05 함수 정의, 반환값, 배열 처리
정규표현식, grep PART 06 BRE, ERE, grep 옵션
sed와 awk PART 07 치환, 필드 처리, 패턴 매칭
프로세스, 시그널 PART 08 ps, kill, trap, 백그라운드
파일 권한 PART 02 chmod, chown, 특수 권한
네트워크 이 PART 04절 ifconfig, netstat, 방화벽

시험을 앞두고 있다면 각 PART를 복습하면서 이 장의 예제 문제를 병행하는 방식을 권장합니다. 다음 절부터는 출제 빈도가 높은 영역을 유형별로 묶어 예제 문제와 함께 풀어봅니다.