앞서 쉘을 먼저 공부하셔야 합니다.
쉘에 대해 it-serial.tistory.com/39 참조하시면 됩니다.
쉘로도 간단한 프로그래밍을 할 수 있습니다.
간단하게 사용하는 방법을 익혀보도록 하겠습니다.
○ 쉘(shell) 프로그래밍이란 ?
▷ 쉘의 내장된 기능을 사용한 프로그램 만드는 것
▷ 쉘도 함수, 변수, 반복문 등 같은 기능을 가지고 상황에 따라 다르게 처리되는 쉘 스크립트 만들수 있음
▷ 여러개의 동일한 명령을 반복적으로 실행할 경우 사용
(그 외에도 사용하는 이유는 더 있습니다.)
▷ 가장 기본적으로 사용되는 bash쉘을 이용
(어떤 언어로 작성할지에 따라 파일의 확장자나 내용형식이 바뀜)
○ 쉘 스크립트(Shell Script)란 ?
▷ 리눅스/유닉스 쉘에 의해 실행되도록 설계된 컴퓨터 프로그램
▷ 쉘에서 제공하는 문법적 내용이 들어가있는 실행 가능 파일
▷ 실행 파일 내용의 해석기(interpreter) 방식으로 동작
▷ 컴파일 되지 않는 프로그램
● 쉘(shell) 스크립트 작성 방법
가장 기본적으로 사용되는 bash쉘을 이용해서 작성해도록 하겠습니다.
① 스크립트를 작성할 파일을 만들어야 합니다. (vi 또는 touch 등으로 파일 생성)
중요한 건 파일의 확장자를 잘적어야 합니다.
저희는 bash쉘을 사용해서 프로그램을 만들기로 했으니까 확장자명을 .sh로 생성합니다.
ex_test란 이름으로 만들어 보겠습니다.
# vi ex_test.sh 명령어로 파일을 만듬과 동시에 파일의 수정모드로 들어가보겠습니다.
② 이제 안에 스크립트(내용)를 작성해야합니다.
파일의 첫번째 줄에 bash쉘을 이용하는 프로그램을 만들겠다고 적어줘야 합니다.
bash의 절대 경로를 적어주어야 합니다.
(혹시나 파이썬 같은 다른 언어를 사용할 경우에는 해당 언어의 절대 경로를 찾아서 사용해야합니다.)
#![사용하는 언어의 경로]
※ #!를 '셔뱅' shebang이라고 부릅니다.
이 셔뱅은 스크립트 맨 처음에 꼭 사용해야 합니다.
셔뱅의 뜻은 해당 인터프리터(interpreter)를 이용해서 해석하겠다는 뜻
인터프리터를 지정하는 명령어(?)라고 생각하시면 됩니다.
파일 수정모드안에서 파일 첫번째 줄에 꼭 입력해야 합니다.
#!/bin/bash
③ 이제부터는 실행할 명령어를 나열하면 됩니다.
명령행에서는 실행하는 것과 동일하게 나열하면 됩니다.
일단 echo라는 명령을 통해 파일을 실행하면 글이 나오도록 한번 작성해보겠습니다.
# echo "shell programming start"
# echo "shell programming fun"
# echo "shell programming end"
작성 후에 # :wq 명령을 통해 저장하고 vi모드에서 나옵니다.
④ # ll 명령어로 파일 확인
파일 ex_test.sh가 잘 생성되어 있습니다.
하지만 파일을 실행시키기 위한 권한인 x가 없습니다.
권한을 잘모르신다면 it-serial.tistory.com/26 참조하시면 됩니다.
⑤ 권한을 부여해주도록 하겠습니다.
# chmod 755 ex_test.sh 명령어를 통해 파일에 실행 권한을 부여했습니다.
그럼 파일의 색이 초록색으로 바뀌게 됩니다.
이렇게 만들어진 파일을 '쉘 스크립트'라고 합니다.
⑥ 한번 잘실행이 되는지 실행해보도록 하겠습니다.
# ./ex_test.sh 명령어로 .(현재 있는 디렉토리) / ex_test.sh(파일 클릭)을 하였습니다.
정상적으로 실행이 이루어진 것을 확인할 수 있습니다.
● 번외로 만약에 권한을 주지 않으면 어떻게 되는지 확인해보도록 하겠습니다.
# ll 명령어로 파일과 권한 확인
이 상태에서 확인해보도록 하겠습니다.
# ./ex_test.sh 명령어로 실행
실행 권한이 없어 허가 거부가 나왔습니다.
권한이 없이도 쉘 파일을 실행할 수 있습니다.
# sh [파일명] 명령어를 통해 해보도록 하겠습니다.
# sh ex_test.sh
(혹시 다른 언어 파이썬 같은 경우도 # python [파일명] 명령어를 통해 가능합니다.)
권한 없이 정상적으로 실행되는 것까지 확인해보았습니다.
쉘 스크립트를 사용해야 하는 경우가 왔을 때 매번 경로를 치기 힘들 수 있습니다.
지금은 디렉토리 안에 들어가 있어서 바로 ./ex_test.sh할 수 있지만
나의 위치(pwd)가 다른 디렉토리에 있으면 절대 경로를 쳐야지만 파일을 실행할 수 있습니다.
그런 불편한 점들을 없애기 위해 환경변수 PATH에 등록하면 언제 어디서든 실행할 수 있습니다.
환경변수를 잘모르신다면 it-serial.tistory.com/38 참조하시면 됩니다.
● 환경변수 PATH에 등록하여 사용
지금 쉘 스크립트 파일이 있는 위치 확인을 해야합니다.
# pwd 명령어로 지금 나의 현재 위치 확인
쉘 스크립트 파일이 /test안에 있습니다.
임시로 환경변수 등록하는 방법
일단 이렇게 사용하기 위해서는 권한을 부여해야합니다.
모두가 사용할 수 있게 실행 권한을 부여합니다.
# chmod 755 ex_test.sh
# export PATH=$PATH:[쉘 스크립트 파일이 있는 절대 경로]
# export PATH=$PATH:/test 명령어로 환경변수를 임시로 등록할 수 있습니다.
임시로 등록한다는 말은 재부팅 시 환경변수가 지워집니다.
($PATH: 이거는 앞에 붙이는 이유는 기존의 PATH설정되어 있는 것들 불러오기 위해서 입니다.
기존의 PATH에는 우리가 사용하는 기본적인 명령어들이 다 들어있습니다. 예를 들어 pwd, ls 등)
# echo $PATH 명령어로 확인
이제 어디서든 쉘 스크립트 파일을 사용할 수 있습니다.
다른 위치로 이동하여 한번 사용해보도록 하겠습니다.
# cd /etc 명령어로 /etc로 이동 (아무 위치로 이동하셔도 됩니다.)
# ex_test.sh 명령어로 쉘 스크립트 파일 실행
환경변수에 경로를 추가하고 난 후 이제부터는 모든 파일의 위치에서
언제 어디서나 일반 명령어처럼 사용할 수 있습니다.
(단, 재부팅 시에 초기화 됩니다. 그렇지 않으려면 영구등록을 해주셔야 합니다.)
영구적으로 환경변수를 등록하시려면 /etc/profile에 등록하시면 됩니다.
자세한 사항은 위 환경 변수글을 참조하시면 됩니다.
※ 쉘 프로그래밍에 사용되는 기본적인 문법들은 일반적인 언어처럼 프로그램 작성이
가능하지만 비슷하면서도 조금 다른 문법을 가집니다. 한번 찾아서 공부해보시길 바랍니다.
댓글