리눅스 쉘 스크립트 실행 파일을 만드는 방법에 대한 내용으로 리눅스 sh 실행 파일을 만들어 쉘 스크립트를 작성하는 단계로 리눅스 쉘 스크립트 만들기 기초단계입니다. 아래 목차 내용대로 순서대로 따라 하시면 초보자도 쉽게 리눅스 실행파일부터 쉘 스크립트 실행 방법을 순서대로 배울 수 있습니다.
※ 목차 구성
1) 쉘 스크립트(shell script)란?
1-1) 쉘(shell) 기본 개념
1-2) 쉘 스크립트(shell script) 장점 및 활용
1-3) 쉘(shell) 종류
2) 리눅스 실행파일 만들기
3) 리눅스 sh 실행 권한 부여
4) 리눅스 쉘 스크립트 쉘 선언
4-1) 리눅스 쉘 확인
4-1) 리눅스 쉘 선언
5) 리눅스 쉘 스크립트 실행 4가지 방법
6) 쉘 스크립트 실행 총정리 및 요약
쉘 스크립트(shell script)란?
쉘 스크립트 실행하기 위해서는 쉘에게 어떠한 명령을 할지 스크립트를 파일 형식을 '.sh' 파일 확장자로 작성하여 알려주는 것입니다. 리눅스 실행파일 만들 때 확장자를 sh 파일로 해주는 것은 리눅스 사용자에 ASCII test 실행파일이라는 것의 암묵적인 약속입니다. 즉, 리눅스 쉘 스크립트 만들 때 되도록 확장자를 '.sh'를 붙여서 쉘 스크립트 실행파일을 생성합니다.
[root@server ~] # ls -l
total 4
-rwx------ 1 root root 1949 Nov 11 2021 test_script.sh
[root@server ~] # file test_script.sh
test_script.sh: Bourne-Agin sheel script, ASCII text executable
쉘 스크립트(shell script)는 일반적인 프로그램 언어와는 달리 기본 명령어를 기반으로 하며 몇 가지 문법을 가지고 사용자가 쉽게 작성할 수 있습니다. 리눅스에서 shell script를 작성하여 실행파일로 만들어 사용하면 명령 줄 인터페이스에 수동으로 입력해야 하는 여러 명령을 자동으로 실행할 수 있습니다.
쉘(shell) 기본 개념
쉘은 커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 명령을 해독하고 프로그램을 실행하는 역할을 합니다. 즉, 사용자가 사용자 프로그램(에디터, 서버, x 윈도, 터미널 등..)을 이용해 명령어를 입력하면 사용자가 이용하는 쉘이 명령을 받아 커널에 전달해 줍니다.
커널은 하드웨어를 감싸고 있고 하드웨어를 직접적으로 제어하는 역할을 하며 컴퓨터가 이해할 수 있는 기계어를 통해 하드웨어에게 전달해 주는 역할을 합니다.
쉘 스크립트(shell script)의 장점 및 활용
- 반복되는 작업을 자동화하기 위해 스크립트 파일 형태 작성.
- 다른 프로그래밍 언어의 같은 코드로 쓰인 것보다 훨씬 더 빠른 경우가 많다.
- 컴파일 단계가 없기 때문에 스크립트는 디버깅을 하는 동안 빠르게 실행할 수 있다.
- 스크립트의 내용을 모르는 사용자도 실행할 수 있도록 할 수 있다.
- 모니터링, 데이터 백업, 복구, 보안, 인증 등 여러 상황에서 많이 활용된다.
쉘(shell) 종류
쉘의 종류에는 기본적으로 5가지가 있으며 사용자에 따라 선호하는 쉘은 다르지만 가장 널리 쓰이는 bash쉘이 대표적입니다.
- Bourne shell
- 개발자는 '스티브 본'으로 쉘의 종류는 sh 쉘입니다
- 최초의 쉘이며 대부분 리눅스에 설치되어 있습니다 - C chell
- 개발자는 '빌 조이'로 쉘의 종류는 csh 쉘입니다.
- Bourne shell의 사용성을 높이고 한층 더 강력해진 쉘로 C언어를 기반으로 강력한 프로그램 작성 기능을 높였습니다. - tee-see-shell
- 개발자는 '카네기 멜런 대학교'에서 개발했으며 쉘 종류는 tcsh 쉘입니다.
- 카네기 멜런 대학교의 학생들이 개발하였으며 C shell에서 명령 행 완성과 명령 행 편집 기능을 추가하였습니다. - Z shell
- 개발자는 '폴 폴스타드'로 쉘 종류는 zch 쉘입니다.
- 확장형 bourne shell로 많은 개성 사항들이 갖추어져 있습니다. - Bourne-again shell
- 개발자는 '브라이언 폭스'로 쉘 종류는 bash 쉘입니다.
- 현시대에 가장 많이 쓰이는 쉘로 GNU 운영체제와 리눅스, 맥 OS 등 기본 쉘로 채택되어있고 C shell과 bourne shell의 기능들이 많이 포함되어 있습니다.
리눅스 실행파일 만들기
쉘 스크립트 실행하기 위해 리눅스 쉘 스크립트 실행파일을 만들어야 됩니다. 파일을 생성하는 방법은 여러 가지 방법이 있지만 touch 명령어를 이용하여 test_script.sh 파일명으로 빈 파일을 만들어 보겠습니다.
touch test_script.sh
root@server # ls -l
total 0
root@server # touch test_script.sh
root@server # ls -l
total 0
-rw-r--r-- 1 root root 0 Apr 4 12:17 test_script.sh
※ 주의사항
앞서 설명했듯이 리눅스 실행 파일의 확장자는 '.sh'로 sh 파일로 생성해야 됩니다. 리눅스를 사용하는 사용자들의 약속으로 .sh의 확장자를 가진 파일은 응용 프로그램 또는 스크립트 작성된 파일로 인식할 수 있기 때문이다.
리눅스 sh 실행 권한 부여
리눅스 sh 파일의 test_script.sh 파일을 만들었으면 실행할 수 있는 권한을 부여해야 실행파일 내용을 작성 후 쉘 스크립트 실행을 할 수 있습니다. chmod 명령어를 이용하여 실행 권한을 부여하면 'test_script.sh' 파일의 파일 소유자에 x 권한이 표시됩니다. 참고로 리눅스 내에 x권한이 추가되면 파일명 색이 초록색으로 변하게 됩니다.
chmod 755 test_script.sh
root@server # ls -l
total 0
-rw-r--r-- 1 root root 0 Apr 4 12:17 test_script.sh
root@server # chmod 755 test_script.sh
root@server # ls -l
total 0
-rwxr-xr-x 1 root root 0 Apr 4 12:17 test_script.sh
chmod의 옵션 755에 대한 설명
- chmod 명령어는 파일의 권한을 변경하는 명령어입니다.
- 파일 소유자(rwx), 그룹(rwx), 그 외 사용자(rwx)의 권한을 수정합니다.
- r은 8진수로 숫자 4, w는 8진수로 숫자 2, x는 8진수로 숫자 1입니다.
- 즉, 755는 파일 소유자 rwx와 그룹 r-x와 그 외 사용자 r-x로 권한을 수정합니다.
리눅스 쉘 스크립트 쉘 선언
리눅스 test_script.sh의 파일 생성 후 쉘 스크립트 실행 권한을 부여하였으면 리눅스 쉘 스크립트 만들기 위하여 파일 내용 첫 번째 줄에 본인이 사용하고 있는 쉘 선언을 해야 됩니다.
리눅스 쉘 확인
리눅스 쉘 스크립트 실행하기 위해 실행파일에 첫 번째 줄에 사용하고 있는 쉘을 선언해야 되는 데 사용하고 있는 쉘 확인하는 방법은 여러 가지지만 echo 명령어를 이용하여 환경변수로 확인하는 방법입니다.
echo $SHELL
root@server # echo $SHELL
/bin/bash
리눅스 쉘 선언
vi test_script.sh
쉘 스크립트 실행 파일 test_script.sh를 vi 또는 vim 편집 명령어 또는 다른 편집 툴을 사용하여 #!/bin/bash 내용을 작성합니다. vi 명령어를 실행하여 키보드의 i를 누르면 INSERT모드(입력 모드)로 전환되어 내용을 입력 후 반드시 ESC를 눌러 명령 모드로 다시 전환 후 :wq를 입력하고 빠져나옵니다.
1번 줄에는 #!/bin/bash 3번째 줄에는 echo "Hello word"를 입력하여 Hello word를 출력하는 쉘 스크립트 실행 파일을 만듭니다.
root@server # cat test_script.sh
#!/bin/bash
echo "Hello word"
※ #!/bin/bash의 의미
- '#!'의 의미는 스크립트를 실행할 쉘을 지정하는 선언문입니다.
- /bin/bash의 의미는 bash명령의 절대 경로입니다.
- 즉, /bin/bash의 쉘로 스크립트를 작성하겠다는 선언을 한 것입니다.
리눅스 쉘 스크립트 실행 4가지 방법
리눅스 실행파일을 만들고 스크립트 내용이 만들어졌다면 리눅스 쉘 스크립트 실행방법은 상대 경로와 절대 경로 또는 sh와 bash 명령어로 실행하는 4가지의 방법이 있습니다. 이외의 방법에는 실행파일 경로를 PATH로 등록하여 명령어 자동완성을 하는 방법은 다음 포스팅에서 다루고 우선 4가지의 방법으로 쉘 스크립트 실행하는 방법에 대해 다루겠습니다.
### 상대경로 쉘 스크립트 실행
root@server # ./test_script.sh
Hello word
### sh 명령어로 쉘 스크립트 실행
root@server # sh test_script.sh
Hello word
### bash 명령어로 쉘 스크립트 실행
root@server # bash test_script.sh
Hello word
### 절대경로로 쉘 스크립트 실행
root@server # /home/test/user/testdir/test_script.sh
Hello word
다만 절대 경로가 아닌 명령어나 상대 경로로 실행할 때는 본인이 위치한 디렉터리의 위치를 파악하고 있어야 됩니다. 실행파일이 위치한 디렉터리가 아닌 엉뚱한 디렉토리에서 쉘 스크립트 파일을 실행하면 No such file or directory라는 오류가 발생할 수 있습니다.
쉘 스크립트 실행 총정리 및 요약
- 쉘 스크립트는 명령어를 기반으로 하며 '.sh'라는 확장자로 지정해 준다.
- 쉘 스크립트를 응용하여 활용하면 작업을 자동화하기 편리하다
- 쉘 스크립트의 첫 번째는 실행파일을 만들어야 한다.
- 실행파일을 만들기 위해서는 x 권한이 필요하다.
- 쉘 스크립트 파일 첫 번째 줄에는 어떠한 쉘을 사용할지 선언을 해야 한다.
- 쉘 스크립트 실행 방법에는 여러 가지가 있지만 디렉토리 경로를 잘 알고 있어야 된다.
리눅스 쉘 스크립트를 위한 실행파일 만들기를 알아보았습니다. 기본적인 사항들이라 규칙을 기준으로 해서 설명을 드렸는데요 제일 우선시하는 개념이기 때문에 리눅스를 처음 사용해보는 입문자용으로 설명을 드렸습니다. 앞으로 쉘 스크립트(shell script)의 기초, 활용, 응용 편으로 많은 글을 작성하도록 하겠습니다.
'IT > 리눅스 쉘 스크립트' 카테고리의 다른 글
[shell script] 쉘 스크립트 기초 #6 - 반복문 for문 개념 및 사용법 (0) | 2022.05.10 |
---|---|
[shell script] 쉘 스크립트 기초 #5 - 조건문 if문 옵션 사용법 및 총정리 (0) | 2022.04.27 |
[shell script] 쉘 스크립트 기초 #4 - 조건문 if문 개념 규칙 및 문법 (0) | 2022.04.26 |
[shell script] 쉘 스크립트 기초#3, 기초 예제 - 변수 사용 예제 (1) | 2022.04.18 |
[shell script] 쉘 스크립트 기초 #2, 기초 문법 - 변수 선언, 변수 호출 (0) | 2022.04.09 |
댓글