Linux Enginner

리눅스의 대한 모든 지식들을 공유하고 배울 수 있는 블로그입니다.

리눅스에서 쉘 스크립트 작성하기

리눅스에서 쉘 스크립트를 작성하는 것은 일상적인 작업을 자동화하거나, 시스템 관리 및 서버 운영을 효율적으로 수행하는 데 큰 도움이 됩니다. 쉘 스크립트는 여러 명령어를 모아 하나의 파일로 저장하고 실행하는 방식으로, 반복적인 작업을 쉽게 처리할 수 있게 도와줍니다. 이 글에서는 리눅스에서 쉘 스크립트를 작성하는 방법에 대해 단계별로 알아보겠습니다.

 

1. 쉘 스크립트란 무엇인가?

쉘 스크립트는 리눅스 쉘에서 실행할 수 있는 명령어들의 모음입니다. 사용자로부터 입력을 받거나, 시스템 명령어를 실행하고 그 결과를 화면에 출력하는 등의 작업을 자동화할 수 있습니다. 쉽게 말해, 여러 가지 명령어를 한 번에 실행할 수 있도록 만든 '매직' 같은 것이죠. 예를 들어, 시스템 백업, 파일 이동, 로그 파일 확인 등의 작업을 수동으로 할 때마다 명령어를 입력하는 것보다 훨씬 효율적입니다.

 

쉘 스크립트의 장점

  1. 자동화: 반복적인 작업을 자동으로 처리할 수 있어 시간을 절약합니다.
  2. 유연성: 다양한 명령어와 기능을 활용할 수 있어 시스템 관리에 매우 유용합니다.
  3. 배치 작업: 여러 명령을 순차적으로 처리하면서, 복잡한 작업도 간단히 해결할 수 있습니다.

2. 쉘 스크립트 기본 구조

쉘 스크립트를 작성하는 데 있어 기본적인 구조는 매우 간단합니다.

 

1) 쉘 스크립트 파일 생성

먼저, 쉘 스크립트 파일을 생성해야 합니다. 보통 .sh 확장자를 사용합니다. 예를 들어 backup.sh라는 파일을 생성할 수 있습니다.

 

touch backup.sh

2) 첫 번째 줄에 해시뱅(#!) 추가

쉘 스크립트 파일의 첫 번째 줄에는 해시뱅(#!)을 추가해야 합니다. 이 부분은 시스템에 어떤 쉘을 사용해서 스크립트를 실행할지를 알려주는 역할을 합니다. 보통 리눅스에서는 /bin/bash를 사용합니다.

 

#!/bin/bash

이렇게 하면 bash 쉘을 사용하여 스크립트를 실행하게 됩니다.

 

3) 명령어 추가하기

그 다음에는 쉘 명령어를 스크립트 안에 작성합니다. 예를 들어, echo 명령어를 사용하여 간단히 "Hello, World!"를 출력하는 스크립트를 작성할 수 있습니다.

 

#!/bin/bash
echo "Hello, World!"

이제 이 파일을 실행하면 화면에 "Hello, World!"가 출력될 것입니다.

 

3. 쉘 스크립트 실행하기

쉘 스크립트를 작성한 후, 실행하는 방법은 매우 간단합니다. 우선 파일에 실행 권한을 부여해야 합니다.

 

1) 실행 권한 부여

chmod +x backup.sh

이 명령어는 backup.sh 파일에 실행 권한을 부여하는 것입니다. 이렇게 권한을 부여한 후에는 스크립트를 실행할 수 있습니다.

 

2) 쉘 스크립트 실행

이제 쉘 스크립트를 실행할 차례입니다. 다음과 같이 실행할 수 있습니다.

 

./backup.sh

위 명령어를 실행하면, 스크립트가 실행되고 지정된 명령어가 실행됩니다.

 

4. 변수와 인수 사용하기

쉘 스크립트에서 변수를 사용하면 더 동적인 스크립트를 만들 수 있습니다. 예를 들어, 사용자가 입력한 값을 변수로 받아서 활용할 수 있습니다.

 

1) 변수 선언과 사용

쉘 스크립트에서 변수는 특별한 선언 없이 바로 사용할 수 있습니다. 예를 들어, 변수 name을 선언하고 그 값을 출력하는 방법은 다음과 같습니다.

 

#!/bin/bash
name="홍길동"
echo "안녕하세요, $name!"

이렇게 작성한 스크립트를 실행하면 "안녕하세요, 홍길동!"이 출력됩니다.

 

2) 명령줄 인수 받기

쉘 스크립트는 실행 시 인수를 받아 사용할 수도 있습니다. 인수는 $1, $2, $3 등으로 접근할 수 있습니다. 예를 들어, 파일 이름을 인수로 받아서 그 파일의 내용을 출력하는 스크립트는 다음과 같습니다.

 

#!/bin/bash
echo "파일 이름은 $1 입니다."
cat $1

이 스크립트를 실행할 때 파일 이름을 인수로 전달하면 해당 파일의 내용을 출력합니다.

 

./show_file.sh test.txt

5. 조건문과 반복문 사용하기

쉘 스크립트에서 조건문과 반복문을 활용하면 더욱 복잡한 작업을 처리할 수 있습니다. 리눅스 쉘 스크립트는 if, for, while 등의 제어문을 지원합니다.

 

1) if 문 사용하기

if 문은 특정 조건이 맞을 때만 명령어를 실행하는 데 사용됩니다. 예를 들어, 파일이 존재하는지 확인하고, 그 파일을 삭제하는 스크립트는 다음과 같습니다.

 

#!/bin/bash
if [ -f "$1" ]; then
    echo "$1 파일이 존재합니다. 삭제합니다."
    rm "$1"
else
    echo "$1 파일이 존재하지 않습니다."
fi

2) 반복문 사용하기

반복문은 동일한 작업을 여러 번 반복해야 할 때 유용합니다. 예를 들어, 디렉토리 내 모든 파일을 순차적으로 삭제하는 스크립트는 for 문을 사용하여 작성할 수 있습니다.

 

#!/bin/bash
for file in *; do
    echo "$file 파일을 삭제합니다."
    rm "$file"
done

6. 실용적인 쉘 스크립트 예시

쉘 스크립트를 활용하면 다양한 시스템 관리 작업을 자동화할 수 있습니다. 여기서는 몇 가지 실용적인 예시를 소개합니다.

 

1) 디렉토리 백업 스크립트

디렉토리의 내용을 백업하는 간단한 스크립트는 다음과 같습니다.

 

#!/bin/bash
backup_dir="/home/user/backup"
source_dir="/home/user/documents"

tar -czf $backup_dir/backup_$(date +%F).tar.gz $source_dir
echo "백업이 완료되었습니다."

이 스크립트는 /home/user/documents 디렉토리를 압축하여 /home/user/backup에 백업 파일을 생성합니다.

 

2) 시스템 정보 확인 스크립트

리눅스 시스템의 정보를 출력하는 스크립트도 유용합니다. 예를 들어, 시스템의 현재 시간, 사용 가능한 디스크 공간, 메모리 사용량을 출력하는 스크립트는 다음과 같습니다.

 

#!/bin/bash
echo "현재 시간: $(date)"
echo "디스크 사용량: $(df -h)"
echo "메모리 사용량: $(free -h)"

이 스크립트를 실행하면 시스템의 주요 정보를 한눈에 확인할 수 있습니다.

 

결론

리눅스에서 쉘 스크립트는 시스템 관리와 반복적인 작업을 자동화하는 데 매우 유용한 도구입니다. 쉘 스크립트를 통해 효율적으로 작업을 처리하고, 시간과 노력을 절약할 수 있습니다. 이번 글에서는 쉘 스크립트 작성의 기본부터 실행, 변수, 조건문, 반복문 등을 다뤄보았습니다. 이제 여러분도 자신만의 유용한 쉘 스크립트를 작성하여 리눅스 시스템을 더욱 효율적으로 관리할 수 있을 것입니다.

 


이 글을 통해 쉘 스크립트를 작성하는 데 도움이 되셨기를 바랍니다. 리눅스에서의 작업을 자동화하고 효율성을 극대화할 수 있는 방법에 대해 더 배우고 싶다면, 꾸준히 연습하면서 다양한 스크립트를 작성해보세요!