IT
리눅스 쉘 스크립트(Shell Script)
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)
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.