Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

리눅스의 가장 큰 장점 중 하나는 반복적인 작업을 자동화하고 간소화하는 스크립트를 손쉽게 만들 수 있다는 점입니다. 시스템 관리자가 로그 파일을 대량으로 처리하거나, 연구 업무에서 CSV·TXT 파일을 다룰 때 특히 유용합니다. 하지만 리눅스 스크립팅을 제대로 활용하려면 반드시 이해해야 할 특수한 문자 시퀀스가 있는데, 바로 셔뱅(Shebang), 즉 #!입니다. 이 글에서는 셔뱅이 무엇인지, 그리고 리눅스에서 어떻게 활용하는지 하나하나 짚어보겠습니다.

셔뱅(Shebang)이란 무엇일까요?

셔뱅(Shebang), 즉 #!는 시스템에 어떤 인터프리터를 사용할지 지시하는 데 쓰이는 문자 조합입니다. 인터프리터가 낯선 분들을 위해 간단히 설명하면, 터미널에 입력한 명령어를 실제로 읽고 실행하는 프로그램을 의미합니다. 대부분 Bash를 떠올리겠지만, Zsh나 Ksh 같은 셸도 사용할 수 있습니다.

인터프리터는 lsxargs처럼 입력된 명령어를 해석해 처리 방법을 결정하는 바이너리 프로그램입니다. 전체 경로는 보통 /bin/bash와 같은 형태를 띱니다. 이러한 경로 구조가 생소하다면 리눅스 가상 디렉터리 구조에 대한 가이드를 먼저 참고해 보는 것도 좋습니다.

#!는 텍스트 파일의 첫 줄에 위치하여, 그 아래에 작성된 코드를 실행할 적절한 인터프리터를 불러오는 역할을 합니다. 예를 들어 다음 이미지와 같은 스크립트를 작성할 수 있습니다.

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

그리고 아래 이미지처럼 실행할 수 있습니다.

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

물론 이 방법도 정상적으로 동작하지만, 매번 인터프리터를 직접 지정하는 일은 시간이 지날수록 번거로워집니다. 더 효율적인 방법은 다음 이미지와 같습니다.

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

그런 다음 이렇게 실행하면 됩니다.

리눅스 셔뱅(Shebang) 완벽 가이드: #! 문자 시퀀스의 의미와 올바른 사용법

셔뱅은 왜 만들어졌을까?

셔뱅을 추가하면 스크립트 작성 과정이 한 단계 늘어나지만, ./(닷슬래시)만으로 스크립트를 실행할 수 있게 되어 장기적으로 훨씬 편리해집니다. 명령어를 어떤 인터프리터에 넘길지 스크립트 스스로 판단하기 때문에 사용자가 일일이 기억할 필요가 없습니다. cron 작업으로 스케줄링하거나 다른 스크립트 내부에서 스크립트를 호출할 때 특히 빛을 발합니다.

Bash든 Zsh든 Python이든, 파일 내용을 해석할 프로그램을 스크립트 첫 줄에 명시해 두기만 하면 시스템 관리가 한결 간단해집니다.

셔뱅 사용 방법

사용법은 아주 간단합니다. 스크립트 파일의 첫 번째 줄에 #!와 함께 명령어를 넘겨줄 인터프리터의 절대 경로를 적으면 됩니다. 몇 가지 예시는 다음과 같습니다:

#!/bin/bash
#!/bin/zsh
#!/usr/bin/env python3

첫 줄을 작성한 후에는 그 아래에 코드를 이어서 작성하면 됩니다. 작성이 끝나면 파일을 저장하고, 다음 명령어 중 하나를 실행해 실행 권한을 부여하세요:

chmod 755 SCRIPT-NAME
chmod a+x SCRIPT-NAME

두 명령어 모두 동일한 결과를 가져옵니다. 이후에는 다음과 같이 스크립트를 실행하기만 하면 됩니다:

./SCRIPT_NAME

이것으로 끝입니다! 생각보다 훨씬 간단하죠.

셔뱅 사용법 가이드가 도움이 되었다면, "No space left on device" 오류 해결법이나 손상된 USB 드라이브 복구 방법 같은 다른 리눅스 실전 팁도 함께 확인해 보세요.