IMG-LOGO
공지사항 :

리눅스 쉘 스크립트(Shell Script)

lmkfox - 2025-10-11 06:53:24 65 Views 0 Comment

1. 쉘 스크립트란?

**쉘 스크립트(Shell Script)**는 리눅스나 유닉스 시스템에서 명령어들을 자동으로 실행하기 위해 작성한 텍스트 파일입니다.

즉, 여러 개의 명령을 하나의 파일에 저장해 순차적으로 실행함으로써, 반복 작업이나 시스템 관리 작업을 자동화할 수 있습니다.

  • 쉘(Shell): 사용자가 입력한 명령을 해석해 커널에 전달하는 인터프리터.

  • 스크립트(Script): 명령어를 모아놓은 실행 가능한 텍스트 파일.


2. 쉘 스크립트의 특징

항목

설명

파일형태

일반 텍스트 파일 (.sh 확장자 사용 권장)

실행방식

인터프리터 방식 (컴파일 불필요)

사용목적

시스템 관리, 자동 백업, 로그 처리, 배포 자동화 등

실행환경

bash, sh, zsh 등 다양한 쉘에서 실행 가능


3. 기본 구조

쉘 스크립트 파일의 기본적인 형태는 다음과 같습니다.

#!/bin/bash
# 주석: 이 스크립트는 간단한 예시입니다.

echo "Hello, Shell Script"

  • #!/bin/bash: shebang이라 부르며, 해당 스크립트를 해석할 쉘 프로그램을 지정합니다.

  • #: 주석 표시.

  • echo: 문자열을 출력하는 명령.


4. 쉘 스크립트 작성과 실행 방법

(1) 작성

nano hello.sh

내용 예시:

#!/bin/bash
echo "Hello Linux"

(2) 실행 권한 부여

chmod +x hello.sh

(3) 실행

./hello.sh

또는 직접 쉘로 실행:

bash hello.sh


5. 변수 사용

쉘 스크립트에서는 변수를 다음과 같이 사용할 수 있습니다.

#!/bin/bash
name="User"
echo "Hello, $name"

  • 변수 선언 시 = 앞뒤에 공백이 없어야 합니다.

  • 변수 값을 참조할 때 $변수명 형태로 사용합니다.


6. 사용자 입력 받기

#!/bin/bash
echo "이름을 입력하세요:"
read name
echo "안녕하세요, $name 님"

  • read 명령어는 사용자 입력을 받습니다.


7. 조건문

#!/bin/bash
echo "숫자를 입력하세요:"
read num

if [ $num -gt 10 ]; then
  echo "10보다 큽니다."
else
  echo "10 이하입니다."
fi

  • [ ] 안에는 조건식을 넣습니다.

  • -gt, -lt, -eq 등은 비교 연산자입니다.


8. 반복문

(1) for문

for i in 1 2 3 4 5
do
  echo "숫자: $i"
done

(2) while문

count=1
while [ $count -le 5 ]
do
  echo "현재 값: $count"
  ((count++))
done


9. 함수(Function)

#!/bin/bash
greet() {
  echo "안녕하세요, $1 님"
}

greet "홍길동"

  • $1, $2는 함수에 전달된 인수(argument)를 나타냅니다.


10. 명령어 종료 상태 코드

모든 명령은 **종료 상태(exit code)**를 반환합니다.

  • 0: 성공

  • 0이 아님: 오류 발생

확인 예시:

ls /etc
echo $?   # 0 출력
ls /없는폴더
echo $?   # 2 출력


11. 실무 예제: 로그 백업 스크립트

#!/bin/bash

LOG_DIR="/var/log"
BACKUP_DIR="/backup/logs"
DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/logs_$DATE.tar.gz $LOG_DIR

echo "로그 백업 완료: $BACKUP_DIR/logs_$DATE.tar.gz"


12. 쉘 스크립트의 장점

  • 반복되는 관리 작업 자동화

  • 배치 처리(batch processing)

  • 서버 유지보수 간소화

  • 시스템 관리 효율 극대화


13. 자주 사용하는 쉘 명령어

명령어

설명

echo

출력

read

사용자 입력

if, for, while

제어문

test, [ ]

조건 평가

exit

스크립트 종료

$?

이전 명령의 종료 코드

$$#=##;, $@

인수 개수 및 목록


14. 주의할 점

  • 파일 인코딩은 UTF-8로 저장해야 한글이 깨지지 않습니다.

  • #!/bin/bash를 꼭 첫 줄에 작성해야 합니다.

  • 실행 권한을 부여하지 않으면 실행되지 않습니다. (chmod +x)


댓글