
리눅스를 사용하다 보면 반복적으로 입력해야 하는 명령어나 작업을 자동화하고 싶을 때가 많다. 이럴 때 쉘 스크립트(Shell Script) 를 사용하면 편리하다.
이번 글에서는 리눅스 초심자를 위한 스크립트 작성법을 하나씩 설명해 보겠다.
1. 쉘 스크립트란?
쉘 스크립트는 리눅스 명령어들을 모아놓은 파일이다.
마치 파이썬이나 C언어처럼 특정한 문법이 있는 것이 아니라,
터미널에서 실행하는 명령어를 그대로 파일에 적어두고 실행하는 방식이다.
쉘 스크립트의 장점
• 명령어를 반복 입력하지 않아도 된다.
• 자동화가 가능하다.
• 여러 개의 명령어를 조합해 복잡한 작업을 할 수 있다.
2. 쉘 스크립트 기본 문법
쉘 스크립트는 .sh 확장자를 가진 파일로 저장한다.
스크립트의 기본 구조
#!/bin/bash
# 여기는 주석입니다.
echo "Hello, World!"
해석
#!/bin/bash
• “이 스크립트는 bash 셸에서 실행된다”는 의미다.
• #!/bin/sh, #!/bin/zsh 같은 방식으로 다른 셸을 사용할 수도 있다.
#여기는 주석입니다.
• # 기호 뒤의 내용은 실행되지 않는다. 설명을 적을 때 사용한다.
echo "Hello, World!"
• echo 명령어는 화면에 글자를 출력한다.
3. 스크립트 실행하기
3-1 스크립트 만들기
nano hello.sh
이후 다음 내용을 입력하고 저장한다.
#!/bin/bash
echo "Hello, World!"
2) 실행 권한 주기
chmod +x hello.sh
• chmod +x는 실행 권한을 부여하는 명령어다.
3) 실행하기
./hello.sh
화면에 Hello, World!가 출력되면 정상적으로 실행된 것이다.
4. 변수 사용하기
쉘 스크립트에서도 변수를 사용할 수 있다.
예제)
#!/bin/bash
name="100byte"
echo "Hello, $name!"
설명
• name="100byte"
• name이라는 변수를 만들고 "100byte" 값을 저장한다.
• $name
• 변수를 사용할 때 $ 기호를 붙인다.
5. 사용자 입력 받기
쉘 스크립트에서 read 명령어를 사용하면 사용자의 입력을 받을 수 있다.
예제)
#!/bin/bash
echo "당신의 이름을 입력하세요:"
read username
echo "안녕하세요, $username!"
실행 예시
$ ./script.sh
당신의 이름을 입력하세요:
100byte
안녕하세요, 100byte!
6. 조건문 사용하기
쉘 스크립트에서도 if 문을 사용해 조건을 처리할 수 있다.
예제)
#!/bin/bash
echo "숫자를 입력하세요:"
read number
if [ $number -gt 10 ]; then
echo "입력한 숫자가 10보다 큽니다."
else
echo "입력한 숫자가 10 이하입니다."
fi
설명
• [ $number -gt 10 ]
-gt는 “greater than” (초과)를 의미한다.
-lt (미만), -eq (같음) 등의 비교 연산자를 사용할 수 있다.
• then
조건이 참이면 실행할 부분을 지정한다.
• fi
if 문의 끝을 의미한다.
7. 반복문 사용하기
반복문을 사용하면 특정 작업을 여러 번 실행할 수 있다.
for 반복문 예제
#!/bin/bash
for i in 1 2 3 4 5
do
echo "반복 중: $i"
done
while 반복문 예제
#!/bin/bash
count=1
while [ $count -le 5 ]
do
echo "현재 숫자: $count"
count=$((count + 1))
done
8. 함수 사용하기
스크립트가 길어지면, 특정 기능을 함수로 만들어 사용할 수 있다.
예제
#!/bin/bash
hello() {
echo "안녕하세요! $1님"
}
hello "100byte"
설명
• hello()
• 함수를 정의한다.
• $1
• 함수에 전달된 첫 번째 인수를 의미한다.
9. 스크립트 자동 실행 (crontab 설정)
스크립트를 특정 시간마다 자동 실행할 수도 있다.
crontab -e
이후 아래 내용을 추가한다.
0 9 * * * /home/user/myscript.sh
• 매일 오전 9시에 /home/user/myscript.sh 스크립트를 실행한다.
• crontab -l 명령어로 등록된 작업을 확인할 수 있다.
10. 실전 예제: 시스템 상태 확인 스크립트
다음은 서버의 CPU 사용량, 메모리 사용량을 확인하는 간단한 스크립트다.
#!/bin/bash
echo "=== 시스템 상태 확인 ==="
echo "CPU 사용량:"
top -b -n1 | grep "Cpu(s)"
echo "메모리 사용량:"
free -m
echo "디스크 사용량:"
df -h
이 스크립트를 실행하면 서버의 상태를 한눈에 확인할 수 있다.
마무리
지금까지 쉘 스크립트의 기본 문법부터 실전 활용까지 다뤄보았다.
정리
쉘 스크립트를 익히면 리눅스 환경에서 업무 자동화에 큰 도움이 된다.
처음에는 간단한 스크립트부터 연습하고 점점 기능을 추가해 보자.
특히, 필자는 많은 업무량에 치이는 중, 여러가지 스크립트(예를 들어 raidcheck 스크립트 등)을 만들어
성과금을 많이 받기도 했다
물론, 본 글에서 다룬 내용들은 아주 기초에 불과하다.
추후 심화편애서 더욱 자세한 내용을 다루겠다.(본업이 너무 바빠 통 글을 못올렸다...)