리눅스 스크립트 기초 완벽정리

croc100·2025년 2월 23일

server engineer

목록 보기
4/6
post-thumbnail

리눅스를 사용하다 보면 반복적으로 입력해야 하는 명령어나 작업을 자동화하고 싶을 때가 많다. 이럴 때 쉘 스크립트(Shell Script) 를 사용하면 편리하다.
이번 글에서는 리눅스 초심자를 위한 스크립트 작성법을 하나씩 설명해 보겠다.


1. 쉘 스크립트란?

쉘 스크립트는 리눅스 명령어들을 모아놓은 파일이다.
마치 파이썬이나 C언어처럼 특정한 문법이 있는 것이 아니라,
터미널에서 실행하는 명령어를 그대로 파일에 적어두고 실행하는 방식이다.

쉘 스크립트의 장점

• 명령어를 반복 입력하지 않아도 된다.
• 자동화가 가능하다.
• 여러 개의 명령어를 조합해 복잡한 작업을 할 수 있다.


2. 쉘 스크립트 기본 문법

쉘 스크립트는 .sh 확장자를 가진 파일로 저장한다.

스크립트의 기본 구조

#!/bin/bash
# 여기는 주석입니다.

echo "Hello, World!"

해석

  1. #!/bin/bash
    • “이 스크립트는 bash 셸에서 실행된다”는 의미다.
    • #!/bin/sh, #!/bin/zsh 같은 방식으로 다른 셸을 사용할 수도 있다.

  2. #여기는 주석입니다.
    • # 기호 뒤의 내용은 실행되지 않는다. 설명을 적을 때 사용한다.

  3. 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

이 스크립트를 실행하면 서버의 상태를 한눈에 확인할 수 있다.


마무리

지금까지 쉘 스크립트의 기본 문법부터 실전 활용까지 다뤄보았다.

정리

  1. 스크립트는 .sh 파일로 작성한다.
  2. 실행하려면 chmod +x 로 실행 권한을 줘야 한다.
  3. 변수, 조건문, 반복문, 함수 등을 활용하면 복잡한 작업도 자동화할 수 있다.
  4. crontab을 이용해 주기적으로 실행할 수도 있다.

쉘 스크립트를 익히면 리눅스 환경에서 업무 자동화에 큰 도움이 된다.
처음에는 간단한 스크립트부터 연습하고 점점 기능을 추가해 보자.

특히, 필자는 많은 업무량에 치이는 중, 여러가지 스크립트(예를 들어 raidcheck 스크립트 등)을 만들어
성과금을 많이 받기도 했다

물론, 본 글에서 다룬 내용들은 아주 기초에 불과하다.
추후 심화편애서 더욱 자세한 내용을 다루겠다.(본업이 너무 바빠 통 글을 못올렸다...)

profile
DevOps / IaaS, SaaS provider

0개의 댓글