[리눅스] bash의 모든 것, #!/bin/bash의 의미

업데이트:

[리눅스] bash의 모든 것, #!/bin/bash의 의미

1. bash란?

리눅스에서는 Bourne shell(/bin/sh), bash shell(/bin/bash)을 사용하는데 bash를 더 많이 사용합니다. 참고로 bash쉘은 Bourne shell의 기능을 향상시킨 버전으로 bash는 Brourne Again Shell)의 줄임말입니다. /bin/sh와 /bin/bash는 거의 비슷하지만 bash에 기능이 몇가지 더 추가된 형태입니다. 맥북에서는 zsh을 많이 사용합니다.

2. shell 이란?

shell은 프로그램(program)입니다. 프로그램에는 사용 목적, 기능이 있는데 shell이라는 프로그램은 어떤 기능이 있는걸까요? shell은 운영 체제 속 내용물에 접근할 수 있는 기능을 제공하는 프로그램 입니다. 즉 shell을 이용하면 운영체제와 상호작용할 수 있다는 의미입니다.

shell에는 크게 두가지 종류가 있는데 CLI와 GUI로 나눌수 있습니다. CLI(Command Line Interface)는 bash와 같이 검은색 창에서 명령어를 입력하는 방식을 통해 운영체제와 상호작용할 수 있습니다. GUI(Graphical User Interface)는 윈도우나 맥과 같이 예쁜 화면에 아이콘을 클릭하는 방식으로 운영체제와 상호작용하는 방식을 의미합니다. 물론 윈도우나 맥에서도 CLI를 제공하니 어느쪽을 사용할지 선택할 수 있습니다.

3. 스크립트(script)란?

스크립트란 인터프리터(interpreter) 방식으로 동작하는 코드를 의미합니다.

3. bash는 프로그래밍 언어인가?

bash는 프로그래밍 언어입니다. 즉, 흔히 말하는 bash script란 bash 프로그래밍 언어로 쓰여진 프로그램 코드를 의미합니다.

10. #!/bin/bash의 의미

쉘 스크립트를 작성할때 가장 첫 줄에 #!/bin/bash라는 문구를 쓰게 되는데 이것의 의미는 bash 쉘을 사용하겠다는 의미입니다.

일반적으로 #는 주석이지만 #!와 같이 느낌표와 함께 쓰이면 이것은 느낌표가 아닙니다. #!는 셔뱅(shebang)이라고 부르고, #! 다음에 오는 문구를 실행합니다. 예를 들어 #!/bin/bash라고 쓰면 스크립트가 실행되면 /bin/bash부터 실행하게 됩니다. 따라서 /bin/bash 이후에 나오는 명령어는 bash를 이용해서 해석할 것이라는 의미입니다.

태그:

카테고리:

업데이트: