Linux 스크립트 시작 부분에 “#!”로 시작하는 이상한 줄을 보고 그게 뭔지 궁금한 적이 있을 것입니다. 이를 “셔뱅 라인”이라고 하며 Linux에서 어떤 인터프리터를 사용할지 알려줍니다. 작동 방식은 다음과 같습니다.

셔뱅 라인이란 무엇인가요?

Linux 시스템에는 다양한 일상적, 반복적 작업을 자동화하는 많은 스크립트가 있습니다. 사용자와 관리자는 자신만의 스크립트를 작성하기도 합니다.

루비나 파이썬과 같은 인기 있는 스크립팅 언어가 등장했지만, 리눅스 배포판에는 일반적으로 몇 가지 셸도 함께 제공됩니다. Bash는 주류 배포판에서 사실상 표준으로 사용되지만, 다양한 셸을 사용할 수 있습니다.

Zsh는 물론 C 셸, Korn 셸, tcsh도 있습니다. 그리고 피쉬도 있습니다. 그리고 그 유명한 본 셸도 있죠. 실제로는 sh에 연결된 Bash라는 점만 빼면요.

이처럼 다양한 스크립팅 언어가 있을 뿐만 아니라 셸도 다양합니다. 이러한 셸은 서로 다른 구문과 명령을 가지고 있습니다. Linux에 어떤 인터프리터를 사용할지 어떻게 알 수 있을까요?

이것이 셔뱅 라인이 하는 일입니다. 해석된 스크립트를 시작하는 문자 시퀀스입니다. “#”과 “!” 문자에 대한 두 가지 속어에서 그 이름을 따왔습니다. 전자를 “해시”라고 합니다. “해시태그”라는 용어에서 알 수 있습니다.

“!”는 뱅이라고도 합니다. 이 두 가지를 합친 것이 “shebang”으로, “전체 shebang”이라는 표현에서 유래한 것입니다.

Linux가 사용할 인터프리터를 파악하는 방법

“#” 문자는 많은 언어에서 주석으로도 사용된다는 것을 알 수 있습니다. 시스템은 어떻게 충돌을 피할까요? 간단합니다. 대부분의 언어 통역기는 “#” 문자가 첫 줄에 있으면 무시하기만 하면 됩니다.

대신 커널은 셰방 줄을 살펴보고 적절한 인터프리터로 스크립트를 전달합니다.

스크립트에서 셔뱅 라인 설정하기

스크립트에서 실행할 인터프리터를 커널에 알려주는 것은 간단합니다. 실행하려는 인터프리터의 절대 경로명을 shebang 줄에 입력한 다음 옵션을 입력하기만 하면 됩니다.

예를 들어, Bash 스크립트를 실행하려면,

 #!/bin/bash

chmod를 사용하여 스크립트에 실행 권한을 부여합니다:

 chmod +x script.sh

이제 명령줄에서 스크립트를 실행할 수 있습니다.

이제 쉘 라인에 대해 알았습니다

이제 리눅스에서 스크립트를 실행하기 위해 쉘 라인이 어떻게 작동하는지 알았습니다. “#!” 문자는 단순히 커널에 어떤 인터프리터를 실행할지 알려줍니다. 대부분의 Linux 시스템과 함께 제공되는 것은 Bash입니다.

Python과 같은 스크립트 언어의 인기에도 불구하고 Bash는 여전히 Linux 관리 작업을 자동화하기 위한 스크립트 작성에 유용합니다. Linux에서 Bash 스크립트를 작성하고 실행하는 것은 쉽습니다.

이 글도 확인해 보세요:  개발자를 위한 최고의 Linux 배포판 10가지

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.